Get mime type of external file using cURL and php

后端 未结 3 1014
鱼传尺愫
鱼传尺愫 2020-11-30 05:01

I\'ve used mime_content_type() and File info but i never successed. i want to use now cURL with PHP and get the headers of the file which is hosted on another d

相关标签:
3条回答
  • 2020-11-30 05:23

    If you are ok with a more elegant Zend Framework version, here is a class which makes use of Zend_Http_Client component.

    Use it like so:

    $sniffer = new Smartycode_Http_Mime(); 
    $contentType = $sniffer->getMime($url);
    
    0 讨论(0)
  • 2020-11-30 05:30

    You can use a HEAD request via curl. Like:

    $ch = curl_init();
    $url = 'http://sstatic.net/so/img/logo.png';
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch, CURLOPT_NOBODY, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    
    $results = explode("\n", trim(curl_exec($ch)));
    foreach($results as $line) {
        if (strtolower(strtok($line, ':')) == 'content-type') {
            $parts = explode(":", $line);
            echo trim($parts[1]);
        }
    }
    

    Which returns: image/png

    0 讨论(0)
  • 2020-11-30 05:34

    PHP curl_getinfo()

    <?php
      # the request
      $ch = curl_init('http://www.google.com');
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
      curl_exec($ch);
    
      # get the content type
      echo curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
    
      # output
      text/html; charset=ISO-8859-1
    ?>
    

    curl

    curl -I http://www.google.com

    output

    HTTP/1.1 301 Moved Permanently
    Location: http://www.google.com/
    Content-Type: text/html; charset=UTF-8
    Date: Fri, 09 Apr 2010 20:35:12 GMT
    Expires: Sun, 09 May 2010 20:35:12 GMT
    Cache-Control: public, max-age=2592000
    Server: gws
    Content-Length: 219
    
    0 讨论(0)
提交回复
热议问题