0

私は、単純な html dom を介して解析し、同じページで同時にすべてのキーワードの破棄されたデータを取得するのが好きなキーワードのセットを持っています。問題は、単純な html dom がリストの最後のキーワードのデータのみを取得し、他のキーワードのデータを取得していないことです。誰かが私のためにこの問題を解決するのを手伝ってくれるなら、本当に感謝しています. これが私のコードです:

<?php

$keywords = "math,chemistry,science";

$keywords = explode(',', $keywords);

foreach($keywords as $keyword){
echo $keyword.'<br>';
}

include("simple_html_dom.php");

$html = file_get_html('http://www.tutorvista.com/search/'.$keyword);

$i = 1;
foreach($html->find('div[style=padding:20px; border-top:thin solid #DDDDDD; border-bottom:none;]') as $element) {
foreach($element->find('div[class=entry-abstract]') as $div) 
{
    $title[$i] = $div->plaintext.'<br><br>';
}
   $i++;
}
print_r($title);

?>
4

2 に答える 2

0

最初の foreach の後にすべてのコードを含めます。

foreach($keywords as $keyword){
echo $keyword.'<br>';

//include other code here 

//..
print_r($title);
}
于 2013-08-11T11:12:44.660 に答える
0

$keyword には、foreach ループによって処理された最後の要素の値のみが含まれます。各キーワードの操作は、foreach ループに入れる必要があります。

<?php
include("simple_html_dom.php");
$keywords = "math,chemistry,science";

$keywords = explode(',', $keywords);

foreach($keywords as $keyword)
{
    echo $keyword.'<br>';

    $html = file_get_html('http://www.tutorvista.com/search/'.$keyword);

    $i = 1;
    foreach($html->find('div[style=padding:20px; border-top:thin solid #DDDDDD; border-bottom:none;]') as $element)
    {
        foreach($element->find('div[class=entry-abstract]') as $div) 
        {
            $title[$i] = $div->plaintext.'<br><br>';
        }
        $i++;
    }
    print_r($title);
}

?>
于 2013-08-11T11:25:30.723 に答える