getimagesize 函数无力读取 限制 user-agent等特殊请求头的图片宽高信息,解决方案

本文 针对 getimagesize 函数无力读取 限制 user-agent等头特殊头的图片宽高等信息


<?php

$img = 'http://i.17173cdn.com/2fhnvk/YWxqaGBf/cms3/ibFplfbmqFrzDDy.jpg!a-3-480x.jpg';
$img = 'http://i.17173cdn.com/2fhnvk/YWxqaGBf/cms3/AuigCtbmqFrzDAh.gif';

echo "以下失败\n";
print_r(getimagesize($img));

echo "\n\n\n以下成功\n";
$hdrs = array(
	 'http' =>array(
	 'header' => 
		"Host: i.17173cdn.com\r\n" .
		"User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3423.2 Safari/537.36\r\n" ,
		'timeout'=>30
	 ),
	
);
$context = stream_context_create($hdrs);
$fp = fopen($img, "rb",false,$context) or die("Invalid file stream.");
$head_block = fread($fp, 256);
$size = getimagesize('data://image/jpeg;base64,'. base64_encode($head_block));	
print_r($size);
exit;

猜你喜欢

转载自blog.csdn.net/swg0110/article/details/80833021
今日推荐