画像を選択して部分的に区切るための正規表現を書いています。ここはexampleです。一般的には問題なく動作しますが、複数の画像がお互いに合っていれば、正規表現は正しく動作しません。どうすればこの問題を解決できますか?画像を選択するための正規表現
正規表現
<img(.*?)src=(?:'|")((?:.*?)\.(?:gif))(?:'|")(.*?)\/?>
画像を選択して部分的に区切るための正規表現を書いています。ここはexampleです。一般的には問題なく動作しますが、複数の画像がお互いに合っていれば、正規表現は正しく動作しません。どうすればこの問題を解決できますか?画像を選択するための正規表現
正規表現
<img(.*?)src=(?:'|")((?:.*?)\.(?:gif))(?:'|")(.*?)\/?>
$dom = new DOMDocument();
$dom->loadHTML($input_html_here);
$images = $dom->getElementsByTagName('img');
foreach($images as $image) {
echo $image->getAttribute("src");
// do stuff here
echo "<br />";
}
正規表現このジョブに使用することは100%間違ったツールです。
私はこの方法に慣れていません。 loadHTML()関数の引数として渡した '$ input_html_here'の内容を教えてください。 – Shafizadeh
ありがとう、私はこれを使用しようとしますが、私は覚えているように私はDOMDocumentを使用することはできません原因私のHTMLは 'とそれを解析することはできません、私のHTMLコードは完全に有効ではありません/ – Kison
@ShafizadehまあおそらくいくつかのHTML現在 'preg_match'に渡されています。ここで 'loadHTML'に渡してください。 –
何が問題なのですか。それはお互いに複数の画像がある場合とまったく同じですhttps://regex101.com/r/dR8jU6/2 – Shafizadeh
私は各GIF画像から3つの部分を取り出す必要があります。 – Kison
http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags#answer-1732454 –