2

私はコードの断片を選んでいます、あなたは私がやろうとしていることを大まかに見ることができます、明らかにこれは機能せず、完全に間違っています:

<?php

$dom= new DOMDocument();
$dom->loadHTMLFile('http://example.com/');
$data = $dom->getElementById("profile_section_container");
$html = $data->saveHTML();
echo $html;

?>

CURL呼び出しを使用して、ドキュメントのURLソースを取得できます。

function curl_get_file_contents($URL)
{
$c = curl_init();
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_URL, $URL);
$contents = curl_exec($c);
curl_close($c);

if ($contents) return $contents;
else return FALSE;
}

$f = curl_get_file_contents('http://example.com/'); 
echo $f;

では、これを使用してPHPでDOMDocumentオブジェクトをインスタンス化し、getElementByIdを使用してノードを抽出するにはどうすればよいでしょうか。

4

5 に答える 5

6

これは、不正な形式のHTMLエラーを回避するために必要なコードです。

$dom = new DOMDocument();
libxml_use_internal_errors(true);
$dom->loadHTMLFile('http://example.com/');
$data = $dom->getElementById("banner");
echo $data->nodeValue."\n"

HTMLソース全体をダンプするには、次のように呼び出すことができます。

echo $dom->saveHTML();
于 2012-06-06T21:04:05.857 に答える
2
<?php

$f = curl_get_file_contents('http://example.com/')

$dom = new DOMDocument();
@$dom->loadHTML($f);
$data = $dom->getElementById("profile_section_container");
$html = $dom->saveHTML($data);
echo $html;

?>

サンプルのhtmlを提供すると役に立ちます。

于 2012-06-06T20:31:25.440 に答える
1

よくわかりませんが、これを使用したいと思ったら、php.ini directve allow-url-fopenがoffに設定されていたため、外部URLをファイルとしてロードすることができませんでした...

したがって、pnp.iniを確認するか、fopenでURLを開いて、URLをファイルとして読み取れるかどうかを確認してください。

<?php
$f = file_get_contents(url);
var_dump($f); // just to see the content
?>

よろしく;

mimiz

于 2012-06-06T20:20:52.230 に答える
0

これを試して:

$dom= new DOMDocument();
$dom->loadHTMLFile('http://example.com/');
$data = $dom->getElementById("profile_section_container")->item(0);
$html = $data->saveHTML();
echo $html;
于 2012-06-06T20:19:46.997 に答える
0

DOMDocument :: loadHTMLを使用できるようになったと思います。 おそらく、Doctypeの存在を(正規表現を使用して)試してから、必要に応じて追加して、必ず宣言してもらう必要があります...よろしくお願いします。

ミミズ

于 2012-06-06T20:38:12.183 に答える