2013-05-06 2 views
0
$url3 = "http://cocatalog.loc.gov/cgi-bin/Pwebrecon.cgi?DB=local&PAGE=First"; 
$ch3 = curl_init();     //2nd curl to search ASIN 
curl_setopt($ch3, CURLOPT_URL,$url3); 
curl_setopt($ch3, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch3, CURLOPT_TIMEOUT, 15); 
curl_setopt($ch3, 156, 2500); 
curl_setopt($ch3, CURLOPT_GETFIELDS,"?Search_Arg=$Kindletitle&Search_Code=TALL&CNT=25&HIST=1"); 
curl_setopt($ch3, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($ch3, CURLOPT_FOLLOWLOCATION, true); 
$copyrightrecordresponse = curl_exec($ch3); 
curl_close($ch3); 
다음 검색 양식에 GET 요청을하려고

하지만 오류 curl_setopt() 매개 변수이 긴 것으로 기대를 얻고로는 검색 양식, 문자열이 주어진

+0

왜 코드에서 this ** curl_setopt ($ ch3, 156, 2500); **를 사용해야합니까? 나는 이것이 오류를 내고 있다고 생각한다 –

+0

@DarkWish CURLOPT_CONNECTTIMEOUT_MS는 156을 가지고있다. –

+0

이 다음을 사용한다 ** CURLOPT_TIMEOUT_MS는 155 **이어야하고 ** CURLOPT_CONNECTTIMEOUT_MS는 156 **이어야한다. [http://www.php.net/manual /en/function.curl-setopt.php#107314) –

답변

0

어쩌면을 GET 요청 컬 내가 뭔가 빠졌지 만 요청 URL을 미리 작성하지 않으시겠습니까?

$title='teste'; 

$url3="http://cocatalog.loc.gov/cgi-bin/Pwebrecon.cgi?Search_Arg=$title&Search_Code=TALL&CNT=25&HIST=1"; 

$ch3 = curl_init();     //2nd curl to search ASIN 
curl_setopt($ch3, CURLOPT_URL,$url3); 
curl_setopt($ch3, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch3, CURLOPT_TIMEOUT, 15); 
curl_setopt($ch3, 156, 2500); 

curl_setopt($ch3,CURLOPT_HTTPGET,true); 
curl_setopt($ch3, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($ch3, CURLOPT_FOLLOWLOCATION, true); 
$copy= curl_exec($ch3); 
curl_close($ch3); 

echo($copy); 

이것은 $ 타이틀 변수에 저장된 문자열에 대한 검색 결과를 반환 : 당신이 달성하지만,이 당신을 위해 작동하는지 확인하려고 정확히 무엇 확실하지.

는 컬 옵션에 대한 문서에서이 참조 링크를 참조하십시오 :

http://pt1.php.net/manual/en/function.curl-setopt.php

가 도움이 바랍니다. :-)

0

처음으로. cURL에는 CURLOPT_GETFIELDS가 없습니다.

두 번째. $ Kindletitle에는 URL 구분 기호가 포함될 수 있습니다. 그래서, 그런 일을하지 않도록 :
"?Search_Arg=$Kindletitle&Search_Code=TALL&CNT=25&HIST=1"

사용 urlencode().
하지만 배열()와 http_build_query() 사용하십시오 :

$url = 'http://example.com?'.$query; 
curl_setopt($ch3, CURLOPT_URL, $url); 

또는 POST을 사용합니다 :

curl_setopt($ch3, CURLOPT_POST, true); 
curl_setopt($ch3, CURLOPT_POSTFIELDS, $query); 

주에 대한 GET 사용을 위해

$data = array(
    'Search_Arg' => $Kindletitle, 
    'Search_Code' => 'TALL', 
    'CNT'   => 25, 
    'HIST'  => '1' 
);  
$query = http_build_query($data); 

curl_setopt($ch3, 156, 2500);156.
Windows 플랫폼의 경우 CURLOPT_CONNECTTIMEOUT_MS과 동일합니다. 어떤 이유로 PHP의 일부 버전에서 CURLOPT_CONNECTTIMEOUT_MS이 잘못 정의되었습니다. 아마도 귀하의 경우가 아니므로 156 대신 CURLOPT_CONNECTTIMEOUT_MS을 사용하십시오.

관련 문제