如果远程图像包含端口号,则Imagemagick无法使用标识

时间:2011-04-08 04:56:59

标签: php regex url imagemagick port

如果url包含端口号,我在使用imagemagick的远程图像上使用exec识别时遇到问题。所以网址如下所示:http://isite.com:81/image.jpg如果我删除了:81它就可以了。我能做什么?使用imagemagick解决此问题或删除端口号是正常的。我尝试使用PHP的parse_url函数删除端口,但之后我无法重建url因为http_build_url()函数在我的服务器上不可用而且我无法安装它。上面的URL就是一个例子。这是原始网址http://img.wallpaperstock.net:81/jeep-in-desert-wallpapers_11419_1600x1200.jpg

2 个答案:

答案 0 :(得分:1)

您没有显示任何代码,也没有说明究竟什么不起作用,但如果您使用的是exec,则可能只需要在将参数传递给ImageMagick之前转义该参数。

如果您从外部获取网址,出于安全考虑,需要仍然可以执行此操作!

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

$ip_safe = escapeshellarg($ip);

exec("identify $ip_safe"); 

答案 1 :(得分:-1)

所需的正则表达式

preg_replace('/(?<=[^:]):\d+\//i', '/', 'http://isite.com:81/image.jpg');