Проблема в том, что вы заключили $ url в строковый литерал.
Если вы запустите curl_getinfo ($ curl_handle); вы увидите URL, который он запрашивает, - http://$url, что явно недопустимо.
Array
(
[url] => http://$url
[content_type] =>
[http_code] => 0
[header_size] => 0
[request_size] => 0
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 0
[namelookup_time] => 0
[connect_time] => 0
[pretransfer_time] => 0
[size_upload] => 0
[size_download] => 0
[speed_download] => 0
[speed_upload] => 0
[download_content_length] => -1
[upload_content_length] => -1
[starttransfer_time] => 0
[redirect_time] => 0
[certinfo] => Array
(
)
)
EDIT
Вот обновленный код, который я использую для тестирования:
<?php
$url="http://sites.target.com/site/en/spot/mobile_fiats_results.jsp?_DARGS=/site/en/spot/mobile_fiats.jsp&asin=&dpci=057-10-1830&zipcode=95128&city=&state=";
$curl_handle=curl_init();
curl_setopt($curl_handle,CURLOPT_URL, $url);
//curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);
curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
$buffer = curl_exec($curl_handle);
//curl_close($curl_handle);
print $buffer."\n";
print_r(curl_getinfo($curl_handle));
?>
Это работает для меня. Тем не менее, единственная другая проблема, которая, как я вижу, может помешать вам получить данные обратно, - это ваше безумно низкое время ожидания соединения. Попробуйте установить его выше.
Опять же, приведенный выше код работает.
ВНОВЬ ОБНОВЛЕНО
Причина, по которой вы получаете сообщение об ошибке, заключается в том, что целевой сайт проверяет правильность пользовательского агента.
Что-то вроде:
curl_setopt($curl_handle, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.15) Gecko/20110303 Ubuntu/10.04 (lucid) Firefox/3.6.15");
работает просто отлично.