Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从服务器下载映像时返回http_400_Php_Image_Url_Curl_Download - Fatal编程技术网

Php 从服务器下载映像时返回http_400

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=

对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=”“

$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);