Вывод значений переменных в php

183
08 сентября 2018, 18:20

Проблема заключается в следующем. Как видно по коду, который я прикрепил, я спарсил данные с другого сайта и записал их в 2 переменные. Первая это $articul, в нее попадает много значений, точней все значения согласно заданным условиям парсинга. Более 1500 артикулов. Другая - это $price. Тоже самое что и с $articul. 1500 цен, каждая из которых соответствует артикулу. Все эти данные мне нужно сохранять в database.txt или database.xls. Так вот, при выводе:

echo '<table class=container border=1 cellspacing=0 cellpading=0"><th>Артикул</th><th>Цена товара</th>';	 
				echo '<tr>'; 
				echo '<td>'.$articul.'</td>'; 
				echo '<td>'.$price.'</td>'; 
				echo '</tr>'; 
				echo '</table>';
Показывается все в строку. Вы видите это на скриншоте. Мне нужно, чтобы значения переменных записывались в столбик друг напротив друга.

<?php  
 header('Content-type: text/html; charset=utf-8'); 
 
 require 'phpQuery-onefile.php'; 
 echo "<link rel='stylesheet' href='style.css'>"; 
 
function parser ($url,$start,$end) { 
 
	if ($start < $end) { 
	 
		$file = file_get_contents($url); 
		$doc = phpQuery::newDocument($file); 
			foreach ($doc->find('.product-list') as $position) { 
				$position = pq($position); 
 
				$articul = $position->find('.name > span:even(1)')->text(); 
				$price = $position->find('.actions .price')->html(); 
 
				$file = 'database.txt'; 
				file_put_contents($file, iconv('utf-8','windows-1251', $articul)); 
			} 
				echo '<table class=container border=1 cellspacing=0 cellpading=0"><th>Артикул</th><th>Цена товара</th>';	 
				echo '<tr>'; 
				echo '<td>'.$articul.'</td>'; 
				echo '<td>'.$price.'</td>'; 
				echo '</tr>'; 
				echo '</table>'; 
 
 
			$next = $doc->find('.pagination .active')->next()->find('a')->attr('href'); 
		 
		if ( !empty($next) ) { 
			$start++; 
			parser($next, $start, $end); 
		} 
	}	 
} 
 
 
 
$url = "https://www.agro-center.com.ua/combines-a/spare-parts-for-grain-harvesters/john-deere-c/?limit=200"; 
$start = 0; 
$end = 1; 
parser($url,$start,$end); 
 
phpQuery::unloadDocuments(); 
?>

Answer 1

Ты форматируешь все посредством html. Корректно это будет отображаться если ты будешь сохранять файл как html и просматривать его в браузере. Для того чтобы правильно все записалось в файл .txt лучше использовать следующий код

$inFile = 'Артикул '.$articul.' Цена товара'.$price.'\r\n';

После чего дописываешь эту переменную к файлу .txt

Для html нужен следующий вид, сначала лучше заготовку

<html>
<head>
  <title>Parser</title>
  <meta charset="utf-8">
</head>
<body>
  <table>
    <tr>
      <td> Артикул </td>
      <td> Цена </td>
    </tr>

После чего получив данные записываешь в переменную

$inFile = "<tr><td>".$articul."</td><td>".$price."</td></tr>";

После чего эту переменную дописываешь в конец к файлу. После чего еще дописываешь

    </table>
  <body>
</html>
READ ALSO
Проверка пользователя в БД(АВТОРИЗАЦИЯ)

Проверка пользователя в БД(АВТОРИЗАЦИЯ)

Как правильно сформулировать запрос на существование пользователя в таблице?

188
Найти свободно реферала

Найти свободно реферала

есть структура как в таблице на картинке

226
Хранение и удаление значений из массива

Хранение и удаление значений из массива

Есть массив ID товаровПользователь может выбрать 1 товар много раз

166
Парсинг отзывов из Яндекс Карты и Google Place

Парсинг отзывов из Яндекс Карты и Google Place

Хочу решить задачу с копированием отзывов в мой WP сайт из google place или яндекс картыно там по умолчанию выводится 10 отзывов

199