Php 从服务器下载映像时返回http_400
对url值进行编码 试试这个 $url=”http://lp.hm.com/hmprod?set=key[来源]、value[/model/2013/2AE%200165378%20025%2037%202916.jpg]&set=key[rotate]、value[]和set=key[width]、value[]和set=key[height]、value[]和set=key[x]、value[]和set=key[type]、value[STILL\u-LIFE\u-FRONT]&hmver=0和call=url[file:/product/large] $image=get\u fcontent($url) 打印(图像) 下面是示例代码 $url=”“Php 从服务器下载映像时返回http_400,php,image,url,curl,download,Php,Image,Url,Curl,Download,对url值进行编码 试试这个 $url=”http://lp.hm.com/hmprod?set=key[来源]、value[/model/2013/2AE%200165378%20025%2037%202916.jpg]&set=key[rotate]、value[]和set=key[width]、value[]和set=key[height]、value[]和set=key[x]、value[]和set=key[type]、value[STILL\u-LIFE\u-FRONT]&hmver=
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$URL);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_BINARYTRANSFER,true);
$content=curl\u exec($ch);
$response=curl\u getinfo($ch);
卷曲关闭($ch);
回声“;
打印(回复);
回声“;
替换url中的空格。它会起作用的
function get_fcontent( $url, $javascript_loop = 0, $timeout = 5 ) {
$url = str_replace( "&", "&", urldecode(trim($url)) );
$cookie = tempnam ("/tmp", "CURLCOOKIE");
$ch = curl_init();
curl_setopt( $ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1" );
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_COOKIEJAR, $cookie );
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );
curl_setopt( $ch, CURLOPT_ENCODING, "" );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_AUTOREFERER, true );
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false ); # required for https urls
curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, $timeout );
curl_setopt( $ch, CURLOPT_TIMEOUT, $timeout );
curl_setopt( $ch, CURLOPT_MAXREDIRS, 10 );
$content = curl_exec( $ch );
$response = curl_getinfo( $ch );
curl_close ( $ch );
if ($response['http_code'] == 301 || $response['http_code'] == 302) {
ini_set("user_agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1");
if ( $headers = get_headers($response['url']) ) {
foreach( $headers as $value ) {
if ( substr( strtolower($value), 0, 9 ) == "location:" )
return get_url( trim( substr( $value, 9, strlen($value) ) ) );
}
}
}
if ( ( preg_match("/>[[:space:]]+window\.location\.replace\('(.*)'\)/i", $content, $value) || preg_match("/>[[:space:]]+window\.location\=\"(.*)\"/i", $content, $value) ) && $javascript_loop < 5) {
return get_url( $value[1], $javascript_loop+1 );
} else {
return array( $content, $response );
}
}
$url="http://lp.hm.com/hmprod?set=key[source],value[/model/2013/2AE 0165378 025 37 2916.jpg]&set=key[rotate],value[]&set=key[width],value[]&set=key[height],value[]&set=key[x],value[]&set=key[y],value[]&set=key[type],value[STILL_LIFE_FRONT]&hmver=0&call=url[file:/product/large]";
$image= get_fcontent($url);
print_r($image);
Array
(
[url] => http://lp.hm.com/hmprod?set=key[source],value[/model/2013/2AE 0165378 025 37 2916.jpg]&set=key[rotate],value[]&set=key[width],value[]&set=key[height],value[]&set=key[x],value[]&set=key[y],value[]&set=key[type],value[STILL_LIFE_FRONT]&hmver=0&call=url[file:/product/large]
[content_type] =>
[http_code] => 400
[header_size] => 166
[request_size] => 334
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 0.39
[namelookup_time] => 0.047
[connect_time] => 0.187
[pretransfer_time] => 0.187
[size_upload] => 0
[size_download] => 0
[speed_download] => 0
[speed_upload] => 0
[download_content_length] => 0
[upload_content_length] => 0
[starttransfer_time] => 0.39
[redirect_time] => 0
[certinfo] => Array
(
)
[primary_ip] => 95.100.71.34
[primary_port] => 80
[local_ip] => 192.168.1.42
[local_port] => 62061
[redirect_url] =>
)
$ch=curl_init();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt( $ch, CURLOPT_BINARYTRANSFER, true);
$content = curl_exec( $ch );
$response = curl_getinfo( $ch );
curl_close ( $ch );
echo "<pre>";
print_r( $response);
echo "<pre>";
$url = str_replace(" ", '%20', $url);