2010-05-02 8 views
2

Essayer d'obtenir la taille du fichier image à l'aide en-tête de longueur boucle, mais le contenu n'est pas retourné:CURL ne pas retourner en-tête de longueur du contenu

$url ="http://www.collegefashion.net/wp-content/plugins/feed-comments-number/image.php?1263"; 
$fp = curl_init(); 
curl_setopt($fp, CURLOPT_NOBODY, true); 
curl_setopt($fp, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($fp, CURLOPT_FAILONERROR,1); 
curl_setopt($fp, CURLOPT_REFERER,''); 
curl_setopt($fp, CURLOPT_URL, $url); 
curl_setopt($fp, CURLOPT_HEADER,1); 
curl_setopt($fp, CURLOPT_USERAGENT,'Mozilla/5.0'); 
$body = curl_exec($fp); 

var_dump ($ body):

HTTP/1.1 200 OK 
Date: Sun, 02 May 2010 02:50:20 GMT 
Server: Apache/2.0.63 (CentOS) 
X-Powered-By: W3 Total Cache/0.8.5.2 
X-Pingback: http://www.collegefashion.net/xmlrpc.php 
Cache-Control: no-cache, must-revalidate 
Expires: Sat, 26 Jul 1997 05:00:00 GMT 
Content-Type: image/png 

Il fonctionne via ssh bien :

curl -i http://www.collegefashion.net/wp-content/plugins/feed-comments-number/image.php?1263 
HTTP/1.1 200 OK 
Date: Sun, 02 May 2010 03:38:43 GMT 
Server: Apache/2.0.63 (CentOS) 
X-Powered-By: W3 Total Cache/0.8.5.2 
X-Pingback: http://www.collegefashion.net/xmlrpc.php 
Cache-Control: no-cache, must-revalidate 
Expires: Sat, 26 Jul 1997 05:00:00 GMT 
Content-Length: 347 
Content-Type: image/png 

Répondre

1

CURLOPT_NOBODY fait une requête HEAD pendant que votre ligne de commande avec -i est une requête GET ...

Si vous utilisez -I avec votre version de ligne de commande, ils seraient plus semblables.

+0

merci! c'était ça. la demande de tête ne renvoie pas la longueur du contenu avec ce serveur. –

+0

Juste pour ajouter: certains serveurs refusent simplement les requêtes HEAD et retournent un code d'état de 405 (c'est-à-dire "Méthode non autorisée") –

0

Vérifier curl_getinfo():

$size = curl_getinfo($fp, CURLINFO_CONTENT_LENGTH_DOWNLOAD); 

Exécutez-la après curl_exec().

Une autre option est de mettre CURLOPT_HEADER- false et juste faire strlen($body) - ignorer, je ne l'ai pas remarqué que vous utilisiez CURLOPT_NOBODY.

Questions connexes