我看了这里的其他问题,仍然无法解决这个问题。它可能看起来像是重复的,但像添加URL的urlencode这样的答案是不起作用的。
我正在尝试使用file_get_contents获取图像。这是代码:
$works='http://static.groupalia.it/DealImage/Local/Epilazione-definitiva-con-IFL/Epilazione-definitiva-con-IFL/be71fdb9-4f7c-4e8e-ab4f-4d9742fa1acd.JPG';
$url='http://static.groupalia.it/DealImage/Local/Hostaria-cacio-e-cocci--menù-x2/Hastaria-Cacio-e-Cocci-Menu--x2/933d79e8-103d-4ffe-b84b-70cf87b14f96.JPG';
$img= file_get_contents ($url);
if ( strlen($img) >1000) echo "WORKS!";
我正试图找到一个同时适用于URLS($works和$url)的解决方案。
如果我将urlencode添加到url,则$url和$works上都会出现"无法打开流"。
在所有这些情况下,什么是正确的解决方案?
你可以试试这个:
<?php
$works ='http://static.groupalia.it/DealImage/Local/Epilazione-definitiva-con-IFL/Epilazione-definitiva-con-IFL/be71fdb9-4f7c-4e8e-ab4f-4d9742fa1acd.JPG';
$url ='http://static.groupalia.it/DealImage/Local/Hostaria-cacio-e-cocci--menù-x2/Hastaria-Cacio-e-Cocci-Menu--x2/933d79e8-103d-4ffe-b84b-70cf87b14f96.JPG';
$transliterator = Transliterator::create('Latin-ASCII');
$img = file_get_contents($transliterator->transliterate($works));
if (strlen($img) >1000) {
echo "WORKS!";
}
但是,imho,最好的解决方案是使用例如。https://github.com/Behat/Transliterator
最终成功:
setlocale(LC_ALL, 'en_US.utf8'); // required for iconv
$url= iconv("UTF-8", "ASCII//TRANSLIT", $url);
希望它能帮助其他人。