私は 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