Imagemagick не может использовать идентификацию на удаленном изображении, если оно содержит номер порта - PullRequest
0 голосов
/ 08 апреля 2011

У меня проблемы с использованием exec identifier на удаленном образе с imagemagick, если URL содержит номер порта.Таким образом, URL выглядит так: http://isite.com:81/image.jpg Если я удаляю: 81, это работает.Что я могу сделать?Либо исправление этой проблемы с помощью imagemagick, либо удаление номера порта - это нормально.Я попытался использовать функцию parse_url в PHP для удаления порта, однако впоследствии я не могу восстановить URL, потому что функция http_build_url () недоступна на моем сервере, и я не могу установить ее.Приведенный выше URL является примером.Вот оригинальный URL http://img.wallpaperstock.net:81/jeep-in-desert-wallpapers_11419_1600x1200.jpg

Ответы [ 2 ]

1 голос
/ 08 апреля 2011

Вы не показываете никакого кода и не говорите, что именно не работает, но если вы используете exec, есть вероятность, что вам просто нужно экранировать параметр, прежде чем передать его в ImageMagick.

Если вы получаете URL-адреса извне, вам понадобится , чтобы сделать это в любом случае по соображениям безопасности!

$ip = "http://isite.com:81/image.jpg";

$ip_safe = escapeshellarg($ip);

exec("identify $ip_safe"); 
0 голосов
/ 08 апреля 2011

Требуемое регулярное выражение будет

preg_replace('/(?<=[^:]):\d+\//i', '/', 'http://isite.com:81/image.jpg');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...