检查字符串是否为URL的最简单方法

时间:2012-07-14 01:59:03

标签: php codeigniter url

目标是检查字符串是否为URL,不需要正则表达式。

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

我明白了:

van_gogh_shoes.jpg

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

用户只需添加1张图片,无论是上传还是网址。所以在mysql中,我正在使用上面的值之一更新名为entry_image的同一列。

显示图片时,如果entry_image列的值是网址,我需要以最简单的方式检查。如果是这样,请显示完整的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输入数据时已经验证了这些值。如果存在,请分享更简单的解决方案。

1 个答案:

答案 0 :(得分:3)

filter_var()是最好的解决方案。竖起大拇指不想要正则表达式作为解决方案。

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