0

div内のdivタグを抽出したい...

post.php ファイル:

<body>
<div class="home">

<div id="post_message_14674248">Content number 14674248</div>
<div id="post_message_14674255">Content number 14674255</div>
<div id="post_message_14674278">Content number 14674278</div>
<div id="post_message_14674279">Content number 14674279</div>
<div id="post_message_14674283">Content number 14674283</div>
<div id="post_message_14674290">Content number 14674290</div>
.
.
.
.
</div>
</body>

extract.php ファイル:

<?php 
$html = file_get_contents("post.php");
   $pattern = "/(<div id=\"post_message_)(.*)(<\/div>)/";
   preg_match_all($pattern, $html, $matches);
   print_r($matches);

?>

しかし、それは私に空の配列を与えます:

Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) [3] => Array ( ) ) 

そして、私はこのようにしたい:

Content number 14674248
Content number 14674255
Content number 14674278
Content number 14674279
Content number 14674283
Content number 14674290

何か助けはありますか?

4

2 に答える 2

1
$html = new DOMDocument(); 
$html->loadHTMLFile("post.php");
$xpath = new DOMXPath($html);
$filtered = $xpath->query("//div[@class='home']/div");

foreach($filtered as $one){
    echo $one->nodeValue."\n";
}
于 2012-09-04T18:18:09.143 に答える
0

file_get_contents()が機能していることを確認します。次のコードを実行すると、結果が得られます。

<?php 
$html = '<div class="home">

<div id="post_message_14674248">Content number 14674248</div>
<div id="post_message_14674255">Content number 14674255</div>
<div id="post_message_14674278">Content number 14674278</div>
<div id="post_message_14674279">Content number 14674279</div>
<div id="post_message_14674283">Content number 14674283</div>
<div id="post_message_14674290">Content number 14674290</div>
</div>
</body>';
   $pattern = "/(<div id=\"post_message_)(.*)(<\/div>)/";
   preg_match_all($pattern, $html, $matches);
   print_r($matches);

?>

正規表現を次のように変更することもできます。

$pattern = "/<div id=\"post_message_.*?>(.*?)<\/div>/";
于 2012-09-04T18:08:12.360 に答える