これが再投稿された場合は申し訳ありませんが、私はそれについて頭を悩ませることができず、見つけたすべての利用可能なドキュメントと例を試しました。
HTMLを含む文字列の最初のimg
要素を取得しようとしています
[〜#〜] php [〜#〜]
_$html = '<p><img src="http://placekitten.com/200/300" alt="" width="200" height="300" /></p>';
$dom = new DOMDocument;
$dom->loadHTML($html);
$imgs = $dom->getElementsByTagName('img');
var_dump($imgs);
_
これは、1つのオカレンスを見つける必要があるときにobject(DOMNodeList)#57 (0) { }
を吐き出します。
私もXPathを試してみましたが運がありませんでした。
これを使って:
$img = $dom->getElementsByTagName('img')->item(0);
echo $img->attributes->getNamedItem("src")->value;
正解はすでに@ nickbによって提供されていますが、@ nickb)によって提供されるコードの2行目でgetNamedItem()
を使用せずに同じことを行うこともできます。、このように:
echo $img->attributes->src->value;
注:上記のコードをコメントとして@ nickbの回答に追加したかったのですが、そのためには最低50のレピュテーションが必要です。誰かが上記のコード行をコメントとして@ nickbの答えに書くことができるなら、私に知らせてください。その後、回答を削除します。