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>';

コメント付きのエコーは機能し、すべての結果を表示します.fwriteは最後の結果のみをファイルに書き込みます. 何が問題ですか?

4

1 に答える 1

1

for eachそこには2つのステートメントがありますが、最初のステートメントのみが foreach でループされているため、中括弧を配置する必要があります。したがって、最後の要素が配置され$stringDatafwrite関数は 1 回だけ呼び出されます。

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

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