특정 URL에서 컬을 실행하면 사이트에서 응답을 멈추고 오류보고가 켜져 있음에도 불구하고 오류가 생성되지 않습니다. 컬링 타임 아웃을 낮은 값으로 설정하려고 시도했지만 오류가 발생하여 시간이 초과되지 않습니다.curl_exec는 PHP 스크립트가 아무 작업도하지 못하도록합니다.
내가 알고 싶은 가장 중요한 사실은 그 일이 어떻게 일어날 수 있으며 어떻게 그 이유를 알 수 있습니까?
내가 액세스하려고 해요 URL이 사실에 입각 한 API를 호출하고, URL을 내가 여기에 사용하고
(http://api.factual.com/v2/tables/bi0eJZ/read?api_key=*apikey*&filters= { "카테고리": "자동차", "$ loc를" { "$ within": { "$ center": [[41, -74], 80467.2]}})
브라우저에 넣을 때 작동합니다. PHP 스크립트는 위도와 경도를 근본적으로 다른 값으로 변경하면 의도 한대로 작동합니다.
error_reporting(E_ALL);
ini_set('display_errors', '2');
$url="http://api.factual.com/v2/tables/bi0eJZ/read?api_key=*apikey*&filters={\"category\":\"Automotive\",\"\$loc\":{\"\$within\":{\"\$center\":[[41,-74],80467.2]}},\"website\":{\"\$blank\":false}}";
Echo "\n\n1";
$ch = curl_init($url);
Echo 2;
curl_setopt($ch, CURLOPT_HEADER, 0);
Echo 3;
curl_setopt($ch, CURLOPT_POST, 1);
Echo 4;
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,15);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT,30);
Echo 5;
$output = curl_exec($ch) or die("hhtrjrstjsrjt".curl_error($ch));
Echo 6;
curl_close($ch);
Echo "out: ".$output;
다른 사용자 에이전트를 설정해보십시오. 우리는 이전에 스패밍 문제를 겪었고 우리가 싫어하는 사용자 에이전트로 흥미로운 일을합니다. –
또한 API 키를 게시하는 것이 좋습니다. – DFectuoso
'$ output = curl_exec ($ ch) 또는 die ("hhtrjrstjsrjt".curl_error ($ ch));는 예상 한대로 수행하지 않습니다. 기본적으로'$ output = (curl_exec ($ ch) or die ("hhtrjrstjsrjt".curl_error ($ ch)));를 실행하면 문자열 대신 부울 값이 반환됩니다. 대신 오류 검사를 다음 행으로 이동하거나 다음과 같이 명시 적으로 그룹화하십시오.'($ output = curl_exec ($ ch)) 또는 die ("hhtrjrstjsrjt".curl_error ($ ch));' – ircmaxell