ホームページ >バックエンド開発 >PHPチュートリアル >正しい URL を抽出する方法の専門家を探しています。
要件: 文字列内の URL を抽出します
$con='http://sdfsd.qq.www.qq.com/sdf.html?a=c';//preg_match_all('/([a-z1-9\.]+\.[com|cn|info]+)/is', $con, $arr);//print_r($arr);这里可以正常提取出sdfsd.qq.www.qq.com的网址$conn=preg_replace_callback('/([a-z1-9\.]+\.[com|cn|info|tk|us]+)/isum', 'url', $con);//同样的正则放到这里就提取不出sdfsd.qq.www.qq.comecho $conn; function url($url){return $url[1];//不管这里是$url[0]还是$url[1]}
preg_match_all を抽出します
preg_replace_callback
を置き換えることです
function url($url){
return $url[1];// そのまま返す
}
効果はどうやって確認できますか?
preg_replace_callback は置換
you
function url($url){
return $url[1];// そのまま返す
}
効果はどうやって確認できますか?
この正規表現に問題があるかどうかを確認してください。どうすれば修正できますか? 1. 文字列に www.w3.org や w3.org などの文字列が含まれている場合は、そのまま返されます。ここでの問題は、org のみが一致するため、結果が " http://www.w3.http://localhost/psh/1999/xhtml" になることです。
2. 文字列内のこの正規表現には、"i" が含まれている必要があります。 " パラメータを使用して大文字と小文字を区別しないようにし、ファイル文字列に "loginInfo.js" が含まれている場合もエラーが発生し、一致は "http://localhost/xxx1rr1dpn/loginhttp://localhost/jogp.js" となり、正しいものになりました。 「http://localhost/xxx1rr1dpn/loginInfo.js」である必要があります
$con='http://www.w3.org/1999/xhtml,http://www.qq.com/loginInfo.js';$url=preg_replace_callback('/(http:\/\/?[a-zA-Z1-9\.]{2,}\.{1}com|cn|info|tk|org|us)/is', 'url', $con);echo $url; function url($url){ echo $url[1]."<br>";if($url[1]=='http://www.w3.org'||$url[1]=='www.w3.org'||$url[1]=='w3.org'){ return $url[1];}return "http://localhost/".str_replace("http://","",$url[1]);//}
$con='http://www.w3.org/1999/xhtml,http://www.qq.com/loginInfo.js'; $url=preg_replace_callback('/http:\/\/[\w.]+(com|cn|info|tk|org|us)/is', 'url', $con);echo $url; function url($url){ echo $url[0]."\n"; if($url[0]=='http://www.w3.org'||$url[0]=='www.w3.org'||$url[0]=='w3.org'){ return $url[0];}return "http://localhost/".str_replace("http://","",$url[0]);// }
preg_replace_callback は置き換えです