2012-07-14 5 views
0

해시 태그의 트윗을 얻기 위해 Twitter Search을 사용하려고했습니다. 해시 태그로 트윗을 file_get_contents로 가져 오기

난 그냥 JSON 파일을 읽을 가지고 있기 때문에

, 나는

file_get_contents('http://search.twitter.com/search.json?q=%23trends'); 

처럼 file_get_contents 대신 cURL를 사용하지만 내 로컬 호스트의 코드를 실행하면 다음과 같은 오류를 보여줍니다. 그것에 대해 어떤 생각?

경고 : file_get_contents (http://search.twitter.com/search.json) [function.file-get-contents] : 스트림을 열지 못했습니다 : "ssl"소켓 전송을 찾을 수 없습니다. PHP를 구성 할 때 활성화하는 것을 잊지 마십시오?

+0

이유 오프 주제 1 닫기 투표 ?? 그것은 SO에 대한 완벽하게 유효한 질문 같습니다 – gopi1410

답변

1

FGC를 제외한 모든 상황에서 FGC보다 컬을 사용하는 것이 좋습니다.

로컬 호스트에 컬을 사용하는 경우는 사용할 수 없습니다 extension=php_curl.dll (라이브 호스트의 99.9 %가 곱슬 곱슬 사용할 수있다.)

이 시도 :

<?php 
//Grab the twitter API with curl 
$result = curl_get('http://search.twitter.com/search.json?q=%23trends'); 

//Decode the json result 
//into an Object 
$twitter = json_decode($result); 
//into an Array 
$twitter = json_decode($result,true); 

//Debug 
print_r($twitter); 

function curl_get($url){ 
    $return = ''; 
    (function_exists('curl_init')) ? '' : die('cURL Must be installed!'); 

    $curl = curl_init(); 
    $header[0] = "Accept: text/xml,application/xml,application/json,application/xhtml+xml,"; 
    $header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"; 
    $header[] = "Cache-Control: max-age=0"; 
    $header[] = "Connection: keep-alive"; 
    $header[] = "Keep-Alive: 300"; 
    $header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7"; 
    $header[] = "Accept-Language: en-us,en;q=0.5"; 

    curl_setopt($curl, CURLOPT_URL, $url); 
    curl_setopt($curl, CURLOPT_USERAGENT, 'TwitterAPI.Grabber (http://example.com/yoursite)'); 
    curl_setopt($curl, CURLOPT_HTTPHEADER, $header); 
    curl_setopt($curl, CURLOPT_HEADER, 0); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); 
    curl_setopt($curl, CURLOPT_TIMEOUT, 30); 
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($curl, CURLOPT_HTTPPROXYTUNNEL, true); 
    curl_setopt($curl, CURLOPT_PROXY, 'http://proxy_address/'); 
    curl_setopt($curl, CURLOPT_PROXYUSERPWD, 'username:password'); 
    curl_setopt($curl, CURLOPT_PROXYPORT, 'portno'); 

    $result = curl_exec($curl); 
    curl_close($curl); 
    return $result; 
} 
?> 
+0

글쎄 로컬 호스트에서 사용할 곱슬, 그것을 테스트합니다? 하지만 ** ** FGC보다 ** 더 나은 컬링을하는 이유는 파일을 읽어야하기 때문입니다. 두 경우 모두 동등하다고 생각했습니다 – gopi1410

+0

FGC는 fopen 함수에 대한 래퍼가 아니며 원격 작업에는 curl이 두 배 가까이 빠릅니다. –

+1

비교 : http://www.anildewani.com/benchmarking-file_get_contents-and-curl-whose-faster/ 더하기 곱슬 곱슬합니다. –

-1

내가보기 엔 file_get_contents 반대로 당신이 CURL 사용하는 것이 좋습니다. 그러나, 당신이 흔들 수 없다면, 여기에 내 문제에 대한 내 읽기 :

PHP에서 SSL을 사용할 수없는 것 같습니다. 나는 당신이 http : // URL을 사용하고 그 오류를 가지고 있다는 것에 약간 놀랐다. https : // URL을 사용하는 경우 오류가 발생할 것으로 예상됩니다. 어쨌든

은 php.ini 파일을 열고, 다음 줄의 주석 웹 서버를 다시 시작하고 당신이 가서 잘되어야합니다 :

extension=extensions/php_openssl.dll 
+0

k,하지만 fgc에 대한 cURL 권장 이유는 무엇입니까? – gopi1410

+0

내 php.ini에서 그런 확장 기능이 없습니다 !! – gopi1410

관련 문제