2016-05-09 7 views
0

画像を選択して部分的に区切るための正規表現を書いています。ここはexampleです。一般的には問題なく動作しますが、複数の画像がお互いに合っていれば、正規表現は正しく動作しません。どうすればこの問題を解決できますか?画像を選択するための正規表現

正規表現

<img(.*?)src=(?:'|")((?:.*?)\.(?:gif))(?:'|")(.*?)\/?> 
+1

何が問題なのですか。それはお互いに複数の画像がある場合とまったく同じですhttps://regex101.com/r/dR8jU6/2 – Shafizadeh

+0

私は各GIF画像から3つの部分を取り出す必要があります。 – Kison

+0

http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags#answer-1732454 –

答えて

2
$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%間違ったツールです。

+0

私はこの方法に慣れていません。 loadHTML()関数の引数として渡した '$ input_html_here'の内容を教えてください。 – Shafizadeh

+0

ありがとう、私はこれを使用しようとしますが、私は覚えているように私はDOMDocumentを使用することはできません原因私のHTMLは 'とそれを解析することはできません、私のHTMLコードは完全に有効ではありません/ – Kison

+0

@ShafizadehまあおそらくいくつかのHTML現在 'preg_match'に渡されています。ここで 'loadHTML'に渡してください。 –

関連する問題