0

我正在尝试使用 foreach 将结果保存到文件中,但它只写入数组的最后一个结果。

include_once('../simple_html_dom.php');
$myFile = "urls.txt";
$fh = fopen($myFile, 'a') or die("can't open file");

$html = file_get_html('the-url');

foreach($html->find('a.bnone') as $element) 

    $stringData = $element->href . '\n';
    fwrite($fh, $stringData);
        //echo $element->href . '<br>';

注释的 echo 起作用并显示所有结果, fwrite 仅将最后一个写入文件。问题是什么?

4

1 回答 1

1

您需要在您的周围放置花括号,for each因为那里有两个语句,但只有第一个语句在 foreach 中循环,因此放入最后一个元素$stringData并且该fwrite函数只调用一次。

foreach($html->find('a.bnone') as $element) {

    $stringData = $element->href . '\n';
    fwrite($fh, $stringData);
    //echo $element->href . '<br>';
}
于 2012-07-27T01:01:36.540 回答