Пожалуйста, обратите внимание на следующий код:РНР себя странно
$imagePath = "https://s22.postimg.org/3k3o9ly8t/testigo.jpg";
$imagedata = get that image data through curl and store in this variable;
echo strlen($imagedata); // outputs 4699
if(strlen($imagedata) == 4699) {
echo "length is 4699";
}
выше, если условие никогда не станет правдой, даже если значение StrLen является 4600. Это кажется очень странным; я что-то упускаю? Я уже пробовал mb_strlen
, но безрезультатно.
Обновление: Кажется, что работает для определенных изображений, но не для следующего изображения.
Код:
$strImageURL = "https://s22.postimg.org/3k3o9ly8t/testigo.jpg";
$strImageData = getData($strImageURL);
echo "<br />" . strlen($strImageData);
if(strlen($strImageData) === 4699) {
echo "true";
}
function getData($strSubmitURL)
{
$strData = null;
$ch = curl_init();
//return parameter
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120);
curl_setopt($ch, CURLOPT_TIMEOUT, 140);
//site name
curl_setopt($ch, CURLOPT_URL,$strSubmitURL);
// don' verify ssl host
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
$strData = curl_exec ($ch);
if (!$strData) {
//die ("cURL error: " . curl_error ($ch) . "\n");
return '';
}
curl_close ($ch);
unset($ch);
return $strData;
}
Учитывая ситуацию вы описали, это в принципе не может быть неверно .. и, вероятно, произошел сбой в другом месте вашего кода. – Evert
Если вы пытаетесь определить размер файла, это было бы неправильным способом. Для безопасности используйте if (strlen ($ imagedata) === 4) (обратите внимание на triple =) – Rottingham
[This] (http://stackoverflow.com/questions/2602612/php-remote-file-size-without-downloading- файл) на самом деле интереснее ... – HamZa