2012-07-14 114 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

相關問題