文字一致の問題

WBOY
リリース: 2016-06-23 14:16:29
オリジナル
749 人が閲覧しました

一連のソース コード内で次の文字を一致させる方法を教えてください
img id="main-image" src="http://ecx.images-mazon.com/images/I/41Auzc7RBPL._SY300_.jpg"

主に、41Auzc7RBPL._SY300_ を含む画像のアドレスを取得したいです (画像のファイル名はランダムに生成され、毎回異なります)。
http://ecx.images-mazon.com を取得するにはどうすればよいですか? /images/I/ 41Auzc7RBPL._SY300_.jpg


ディスカッションへの返信(解決策)

通常の処理を使用するのが最も便利です:

$str = '请问怎么在一堆源码中匹配以下字符img id="main-image" src="http://ecx.images-mazon.com/images/I/41Auzc7RBPL._SY300_.jpg"';$p = '#img\s*id="main-image"\s*src="(http://ecx\.images-mazon\.com/images/I/.+\.(jpg|gif|jpeg|png))"#U';preg_match($p, $str, $result) && var_dump($result);
ログイン後にコピー

状況に応じてDOMに解析することもできます:
$html = '<div><img id="main-image" src="http://ecx.images-mazon.com/images/I/41Auzc7RBPL._SY300_.jpg" /></div>';$doc = new DOMDocument();$doc->loadHTML($html);echo $doc->getElementById('main-image')->getAttribute('src');
ログイン後にコピー


100,000 回のループ テスト後、後者の速度は前者の通常の 7 倍の速度になり、テスト ソース文字列のサイズが増加するにつれて、その差はさらに大きくなる可能性があります

41Auzc7RBPL._SY300_ この文字列はランダムに生成され、毎回異なります. 後続の DOM はこの文字列を直接使用しており、ファイル名は不明です

$str='img id="main-image" src="http://ecx.images-mazon.com/images/I/41Auzc7RBPL._SY300_.jpg"';$p = |img id="main-image" src="(.*)"|iUs;preg_match($p, $str, $result);print_r($result);//如果你只需要对获取到的网址里那个图片名称那么你需要分割$ep=explode('/',$result[0]);echo $ep[5];
ログイン後にコピー

学習後は正規表現で処理します

preg_match は正規表現を使うだけで大丈夫です。文字列を分割する方法がわからなくても

PHP で DOM を解析する前はこの方法に気付かなかったのを学びましょう

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート