我正在使用 simple_html_dom 解析页面并返回一些内容。
当我尝试在 foreach 循环中使用 print_r 输出内容时,它会返回所有元素。但是,如果我尝试将内容输出到文本文件,它只会输出最后一个元素。我究竟做错了什么?
这是我的示例代码:
include 'simple_html_dom.php';
$partlist_file = $_SERVER['DOCUMENT_ROOT'].'/partlist.txt';
$partlist = file('knn-partnumberlist.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$stock = '';
$output_first = '';
foreach($partlist as $parts => $part) {
$html = file_get_html('search/product.aspx?prod=' . $part);
$ret = $html->find('span#cph_lb_stock_buy');
foreach($ret as $element) {
$stock = $element->plaintext;
$stock = preg_replace(array('/\\n/','/\\r/'),'',$stock);
$stock = trim($stock);
if($stock == 'Not in stock.') {
$stock = '0';
} elseif($stock == 'In Stock & Ready to Ship!') {
$stock = '6';
}
$output = 'K33' . $part . ',' . $stock . "\n";
print_r ($output); // returns all elements
file_put_contents($partlist_file, $output); // only returns last element
}
}
print_r 输出示例:
K3300283,6
K3301518,6
K3301988,6
K3303351,6
K3303365,6
file_put_contents 输出示例:
K3303365,6