私が取り組んでいるプロジェクトで何らかの形式の入力セキュリティを探しています。基本的に、ユーザーが何らかの形式の URL を入力した場合にテキストにフラグを付けたいと考えています。
IE '私の写真の詳細については、myhotpic.net にアクセスしてください'
したがって、URLを検出し、スタッフを介して検証のために文字列にフラグを立てることができます. そのため、あらゆる形式の URL をチェックする必要があります。
同様の質問がここにあり ます PHPと正規表現を介してテキスト文字列からURLを検索していますか? 答え付き。しかし、これをさまざまな文字列で疲れさせてしまい、期待した結果が得られません。
例えば
$pattern = '#(www\.|https?:\/\/){?}[a-zA-Z0-9]{2,254}\.[a-zA-Z0-9]{2,4}(\S*)#i';
$count = preg_match_all($pattern, 'http://www.Imaurl.com', $matches, PREG_PATTERN_ORDER);
一致を次のように返します
array(3) {
[0]=>
array(0) {
}
[1]=>
array(0) {
}
[2]=>
array(0) {
}
}
エラーは返されませんpreg_last_error()
なぜこれが機能しないのですか?正規表現にエラーはありますか? 他のユーザーが成功しているので、問題ないと思います。
私の問題に対する適切な答えが他のどこにも見つからないようです。