目標は、文字列がURLであるかどうかを確認することであり、正規表現は必要ありません。
ユーザーが画像をアップロードしたり、URLから画像を追加したりできるフォームがあります。
私は得る:
van_gogh_shoes.jpg
また
http://t2.gstatic.com/images?q=tbn:ANd9GcR2YNtlcmDDBpseEqUkMhe7-netq7RL2u_bw3_34VwB-Tsv2V-B
ユーザーは、アップロードまたはURLのいずれかで1つの画像のみを追加できます。したがって、mysqlでは、entry_image
上記の値の1つで名前が付けられた同じ列を更新しています。
画像を表示するとき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にデータを入力するときに値をすでに検証しているため、画像を表示するときに正規表現やその他の重い検証コードを回避しようとしています。存在する場合は、より簡単な解決策を共有してください。