2012-07-14 80 views
2

目标是检查一个字符串是否是一个URL,不需要正则表达式。最简单的方法来检查字符串是否为URL

我有一个表单,可以让用户上传图片或从网址添加图片。

我得到:

van_gogh_shoes.jpg

http://t2.gstatic.com/images?q=tbn:ANd9GcR2YNtlcmDDBpseEqUkMhe7-netq7RL2u_bw3_34VwB-Tsv2V-B

用户可以添加仅有1图像,无论是上传或URL。所以在MySQL中,我正在使用上面的值之一更新名为entry_image的同一列。

当显示图像时,如果entry_image列的值是URL,我需要以最简单的方式检查。如果是这样,则显示完整的URL,否则显示上传图像的路径。

<img src="<?php (filter_var($row->entry_image, FILTER_VALIDATE_URL)) ? $row->entry_image : "uploads/entries/{$row->user_id}/{$row->entry_image} ?>"> 

我使用FILTER_VALIDATE_URL这似乎是工作,但与大多数事情一样,我不知道这是否是最好的解决办法之前,我没有用..你有什么想法?

我试图避免显示图像时的正则表达式或其他严重的验证码,因为我已经验证输入数据到MySQL时的值。如果存在,请分享一个更简单的解决方案。

+0

1 FILTER_VALIDATE_URL 2有什么问题如果用户需要输入完整路径(如http:// ......),您可以检查字符串是否具有http:// – 2012-07-14 02:06:11

+0

@COLDTOLD URL如果用户没有输入,则不需要。我正在处理表单提交中的所有其他URL验证。用于显示图像检查它是否足够。 – CyberJunkie 2012-07-14 02:09:36

回答

3

filter_var()是最好的解决方案。大拇指不希望正则表达式作为解决方案。

除此之外,我只想指出,将图像文件从外部URL传输到服务器是一种更好的方式(在我看来)。它可以帮助您避免像删除外部图像和外部服务器连接问题。您不必担心验证URL。但这只是一个建议。

+0

感谢您的建议!我正在考虑尽快上传URL图片。 – CyberJunkie 2012-07-14 02:12:15

相关问题