0

重複の可能性:
RegEx は、XHTML 自己完結型タグを除く開始タグに一致
する PHP で HTML/XML を解析および処理する方法は?

次のようなイメージ ダウンロード スクリプトの一部として、現在のコード行があります。

preg_match_all('|<img.*?src=[\'"](.*?)[\'"].*?>|i', $content, $matches);

これを変更して、以下を含める必要があります。

id="iwi"

preg_match_all コマンド内。img は常に次の形式です。

いくつかの異なるバリエーションを試しましたが、エラーが発生し、最終的に以下のように引用符なしで試してみましたが、それでも何もありません。構文が間違っていますか?

preg_match_all('|<img.*?id=iwi.*?src=[\'"](.*?)[\'"].*?>|i', $content, $matches);
4

2 に答える 2

4

これはThe Pony He Comes の最大の問題です。<img id="iwi" src="image.png" />それが、またはになるかどうかはわかりません<img src="image.png" id="iwi" />

代わりに、パーサーを使用する必要があります。

$dom = new DOMDocument();
$dom->loadHTML($content);
$img = $dom->getElementById("iwi");
$src = $img->getAttribute("src");
于 2013-01-20T01:54:40.027 に答える
1

すべての反対意見にもかかわらず preg の使用を主張する場合、これらの方法も機能します。

// [\'"]* is useful cos sometime can't find " or ', and * means 0 or 1 time search
preg_match_all('~<img.*?id=[\'"]*([^\s\'"]*).*?src=[\'"]*([^\s\'"]*).*?>~i', $content, $matches);
preg_match_all('~<img.*?id=[\'"]*(?P<id>[^\s\'"]*).*?src=[\'"]*(?P<src>[^\s\'"]*).*?>~i', $content, $matches);
print_r($matches);
于 2013-01-20T02:51:40.437 に答える