Ottenere il tipo mime del file esterno con cURL e php

Ho usato mime_content_type() e File di info ma non ho mai successed. voglio usare ora cURL con PHP e ottenere le intestazioni del file in cui è ospitato su un altro dominio, quindi estrarre & determinare se il tipo è MP3 o non. ( penso che il tipo mime del file MP3 è audio/mpeg )

Brevemente, so che, ma non so come applicarlo 🙂

Grazie

InformationsquelleAutor Ryan | 2010-04-09

 

3 Replies
  1. 45

    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

    uscita

    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
    • Grazie mille , è esattamente quello che sto cercando 🙂
    • Solo per mettere in guardia gli altri: Se si esegue il download di file esterni al server, il tipo mime avversaria server fornisce potrebbe essere deliberatamente alterato. Non fidatevi del Tipo di Contenuto. Invece, scaricare il file e utilizzare gli strumenti locali PHP fornisce.
  2. 20

    È possibile utilizzare una TESTA di richiesta tramite curl. Come:

    $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 (strtok($line, ':') == 'Content-Type') {
                    $parts = explode(":", $line);
                    echo trim($parts[1]);
            }
    }

    Che restituisce: image/png

    • quello è grande! sarà solo ottenere le intestazioni e consente di risparmiare un sacco di tempo e di risorse per le immagini grandi. Se si sta utilizzando ora – cambiare la funzione split per esplodere (come è stato deprecato da php5.3)
  3. 2

    Se sei ok con un più elegante Zend Framework versione, qui è una classe che fa uso di Zend_Http_Client componente.

    Usarlo in questo modo:

    $sniffer = new Smartycode_Http_Mime(); 
    $contentType = $sniffer->getMime($url);

Lascia un commento