'"]*).*js/i"),$code,$link"/> '"]*).*js/i"),$code,$link">

ホームページ >バックエンド開発 >PHPチュートリアル >preg_matchについて教えてください。

preg_matchについて教えてください。

WBOY
WBOYオリジナル
2016-06-13 13:40:59826ブラウズ

preg_match について教えてください
ページをクロールして、ページ内のすべての js リンクを照合する方法を教えてください。現在、この

PHPコード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->function getLink($code){
  preg_match_all("/src=[\'\"]{0,1}([^>\'\"]*).*js/i"),$code,$link);
  return $link[1];
}


を実行しているのですが、これを呼び出すと、次のページ管理のjsリンクに遭遇すると、出力が異常になります。

http://www.test.com/1.js?eGo
-----これは http://www.test.com/1 のみを出力できます。

http://www.test.com/2.js
-----これで http://www.test.com/2.js が正常に出力できます

アドバイスをお願いします

-----解決策---------
preg_match_all("/src=[' "] {0,1}([^>'"]*.*js?)/i"),$code,$link); //これはどうでしょうか?
------解決策----------------------
preg_match_all("/src=['"] { 0,1}([^>'"]*.*js)/iU",$code,$link);

これを行わないと、結果には mre_src 部分の内容が含まれます。欲しいなら
preg_match_all("/bsrc=['"]{0,1}([^>'"]*.*js)/iU",$s,$link);

------解決策---------
PHP コード
$str='<script src="test.js" type="text/javascript" mre_src="test.js"></script>';
$pattern='/bsrc=['"]?([^"']+.js)/U';
preg_match_all($pattern,$str,$matches);
print_r($matches); <div class="clear"></div>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。