0

シンプルな dom を使用して、HTML ファイルから画像を解析したいと考えています。今まで正規表現を使っていたのですが、これはダメだと言われましたので、dom を試してみました。

<?php
include('simple_html_dom.php');
$html = file_get_html('192.0.0.1/test.html');
var_dump($html);
foreach ($html->find('img') as $image) {
    echo $images->src;
}
?>

TEST.html

<html>
<head>
</head>
<body>
    <p>test</p>
    <img src="test.jpg"/>
    <p>test1</p>
</body>
</html>

空白のページが表示され、エラー ログを確認しましたが、ありません。DOM に関するチュートリアルに従いましたが、間違っていましたか?

また、HTML コードを持つ変数から img を解析できますか? 私が意味したのは:

$string='<p>sdadasd</p> <img src="test.jph/> <p>asdasda</p>';
$html=file_get_hmtl($string);
4

1 に答える 1

0

あなたはこのようなものを使うことができます(私はあなたがどこで得たfile_get_htmlのかわからないので、そのオブジェクトが返すメソッドはわかりません)

$document = new DOMDocument();
$document->loadHTMLFile("http://127.0.0.1/index.html"); // I don't remember if this accepts streams

$images = $document->getElementsByTagName("img");

foreach($images as $image) {
    //Use the image
}

または、複雑なクエリ (特定の属性を持つ img タグなど) が必要な場合は、次のことができます。

$xpath = new DOMXPath($document);
$images = $xpath->query("//img");
于 2014-11-26T21:44:22.530 に答える