一連のソース コード内で次の文字を一致させる方法を教えてください
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);
$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');
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 を解析する前はこの方法に気付かなかったのを学びましょう