私は短縮スクリプトに取り組んでおり、http:// が URL と一緒に渡されると問題が発生しました。
問題:ユーザーが http:// を含むリンクを提供しない場合、スクリプトはそれを処理できず、無効な url エラーを返します。preg_match は http、https、およびそれらのいずれも含まれていないリンクを解析する必要があるため、発生するはずのないものです。
httpのチェックを担当するコードスニペットは次のとおりです
$url = $_REQUEST['url'];
if(!preg_match("/^[a-zA-Z]+[:\/\/]+[A-Za-z0-9\-_]+\\.+[A-Za-z0-9\.\/%&=\?\-_]+$/i", $url)) {
$html = "<h1 id='upc' style='padding:8px 8px;text-align:center;'>Error: invalid URL</h1>";
} else {
$url = $_REQUEST['url'];
それを修正し、http と https の解析と、http または https なしでのリンクの解析を可能にする最善の方法は何でしょうか。