Я использую simple_html_dom для анализа страницы и возврата содержимого.
Когда я пытаюсь вывести содержимое с помощью print_r в цикле foreach, он возвращает все элементы. Однако, если я попытаюсь вывести содержимое в текстовый файл, он выведет только последний элемент. Что я делаю не так?
Вот мой пример кода:
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