私は必死になって、正規表現を認識する John Grubers の URL を適切に機能させようとしています! 私が書いた単純な関数は、あからさまな URL が含まれていても、常に false を返します!
2 つの異なる関数で任意の URL と Web 固有の URL をテストしようとしています。私は正規表現にかなり慣れていないので、これはほぼ間違いなく私です!
関数:
<?php
function isweburl($url)
{
return(preg_match("(?i)\b((?:https?://|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?: [^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`! ()\[\]{};:'\".,<>?«»“”‘’]))", $url));
}
function isanyurl($url)
{
echo "suspected url:$url<br>";
return(preg_match("/(?i)\b((?:https?://|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?: [^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`! ()\[\]{};:'\".,<>?«»“”‘’]))/", $url));
}
$test=isanyurl('http://www.sega.com');
var_dump($test);
echo "<br>web test:<br>";
$test=isweburl('http://www.sega.com');
var_dump($test);
?>
助けてくれてありがとう!