php
  • curl
  • 2013-06-04 26 views 4 likes 
    4

    我使用此代碼在php中獲取圖像大小,並且它正在爲我完美工作。通過CURL在PHP中獲取圖像大小

    $img = get_headers("http://ultoo.com/img_single.php", 1); 
    $size = $img["Content-Length"]; 
    echo $size; 
    

    但是如何通過CURL來獲取? 我試過但沒有效果。

    $url = 'http://ultoo.com/img_single.php'; 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_HEADER, 1); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, "Content-Length"); 
    //curl_setopt($ch, CURLOPT_NOBODY, 1); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $result = curl_exec($ch); 
    
    $filesize = $result["Content-Length"]; 
    
        curl_close($ch); 
    
        echo $filesize; 
    
    +0

    它不重複,當我在給定的鏈接上使用給定的代碼時,我在Result中得到-1 。 – user2424807

    回答

    0

    我碰到在此之前,腳本我以前可以在這裏找到 - >http://boolean.co.nz/blog/curl-remote-filesize/638/。與上面的帖子非常相似,但更直接一點,也不太容易理解。

    +0

    第10行的/home/dotmamat/public_html/d/dd/t1.php中出現語法錯誤,意外的'?',期待')' – user2424807

    +0

    如果您做了直接複製粘貼,請確保所有字符都正確,如雙引號是「真實」的雙引號。除此之外,不知道哪裏出現了「意外?」會來自。該函數的所有支架都匹配。 –

    1

    設置curl_setopt($ch, CURLOPT_HTTPHEADER, true);,然後print_r($result),你會看到類似

    HTTP/1.1 200 OK 
    Date: Tue, 04 Jun 2013 03:12:38 GMT 
    Server: Apache/2.2.15 (Red Hat) 
    X-Powered-By: PHP/5.3.3 
    Set-Cookie: PHPSESSID=rtd17m2uig3liu63ftlobcf195; path=/ 
    Expires: Thu, 19 Nov 1981 08:52:00 GMT 
    Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 
    Pragma: no-cache 
    Content-Length: 211 
    Content-Type: image/png 
    

    我不認爲Content-Length是獲取圖像的大小以正確的方式,因爲我得到不同的結果curlget_header

    0

    之間也許這適用於你(假設頁面總是返回一個img/png) - 我包含一個「寫入文件」,只是爲了能夠比較屏幕輸出和文件大小(頁面中的png):

    $url = 'http://ultoo.com/img_single.php'; 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //return the output as a variable 
    curl_setopt($ch, CURLOPT_TIMEOUT, 10); //time out length 
    $data = curl_exec($ch); 
    if (!$data) { 
        echo "<br />cURL error:<br/>\n"; 
        echo "#" . curl_errno($ch) . "<br/>\n"; 
        echo curl_error($ch) . "<br/>\n"; 
        echo "Detailed information:"; 
        var_dump(curl_getinfo($ch)); 
        die(); 
    } 
    curl_close($ch); 
    $handle = fopen("image.png", "w"); 
    fwrite($handle, $data); 
    fclose($handle); 
    $fileSize = strlen($data); 
    echo "fileSize = $fileSize\n"; 
    
    相關問題