XML-файл объявлений для Авито

<?php 
//error_reporting(E_ALL);
//ini_set('display_errors', 1); 

// Получение записей из БД
$dbh = new PDO('mysql:dbname=db_name;host=localhost', 'логин', 'пароль');
$sth = $dbh->prepare("SELECT * FROM `prods`");
$sth->execute();
$items = $sth->fetchAll(PDO::FETCH_ASSOC);

$ads = ''; 
foreach ($items as $row) {
	$ads .= '<Ad>' . "\r\n";
	
	// Уникальный идентификатор объявления в вашей базе данных
	$ads .= '<Id>' . $row['id']. '</Id>' . "\r\n";
	
	// Полный адрес объекта — строка до 256 символов
	$ads .= '<Address>Россия, Тамбовская область, Моршанск, Лесная улица, 7</Address>' . "\r\n";	
	
	// Категория товара — одно из значений списка
	$ads .= '<Category>Телефоны</Category>' . "\r\n";	

	// Контактный телефон, только один номер телефона
	$ads .= '<ContactPhone>+7 916 123-45-67</ContactPhone>' . "\r\n";
	
	// Название объявления — строка до 50 символов
	$ads .= '<Title>' . $row['name'] . '</Title>' . "\r\n";
	
	// Текстовое описание объявления — строка не более 7500 символов
	$ads .= '<Description><![CDATA[' . strip_tags($row['text']) . ']]></Description>' . "\r\n"; 

	// Цена в рублях — целое число
	$ads .= '<Price>' . $row['price'] . '</Price>' . "\r\n";
	
	// Состояние вещи в категории
	$ads .= '<Condition>Новое</Condition>' . "\r\n";
	
	// Фотографии 
	$ads .= '<Images>' . "\r\n";
	$ads .= '<Image url="https://example.com/img/' . $row['image_1'] . '" />' . "\r\n";
	$ads .= '<Image url="https://example.com/img/' . $row['image_2'] . '" />' . "\r\n";
	$ads .= '</Images>' . "\r\n";
		
	$ads .= '</Ad>' . "\r\n";	
}
 
header('Content-Type: text/xml; charset=utf-8');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
 
echo '<?xml version="1.0" encoding="utf-8"?>
<Ads formatVersion="3" target="Avito.ru">
	' . $ads . '
</Ads>';

exit;
PHP
<?xml version="1.0" encoding="utf-8"?>
<Ads formatVersion="3" target="Avito.ru">
	<Ad>
		<Id>1</Id>
		<Region></Region>
		<Address>Россия, Тамбовская область, Моршанск, Лесная улица, 7</Address>
		<Category>Телефоны</Category>
		<ContactPhone>+7 916 123-45-67</ContactPhone>
		<Title>IPhone 7</Title>
		<Description><![CDATA[Описание телефона...]]></Description>
		<Price>50000</Price>
		<Condition>Новое</Condition>
		<Images>
			<Image url="https://example.com/img/img_1.png" />
			<Image url="https://example.com/img/img_2.png" />
		</Images>
	</Ad>
	<Ad>
		<Id>2</Id>
		<Address>Россия, Тамбовская область, Моршанск, Лесная улица, 7</Address>
		<Category>Телефоны</Category>
		<ContactPhone>+7 916 123-45-67</ContactPhone>
		<Title>Xiaomi Redmi Note 9</Title>
		<Description><![CDATA[Описание телефона...]]></Description>
		<Price>15000</Price>
		<Condition>Новое</Condition>
		<Images>
			<Image url="https://example.com/img/img_3.png" />
			<Image url="https://example.com/img/img_4.png" />
		</Images>
	</Ad>
</Ads>

В файле .htaccess можно добавить запись, чтобы фид открывался по адресу https://example.com/avito.xml

RewriteEngine On
RewriteRule ^avito.xml$ avito.php [L,QSA]
htaccess
30.03.2022
343
Следующая запись Прелоадер в Fancybox 3

Комментарии

, чтобы добавить комментарий.

Другие публикации

XML для Яндекс.Недвижимости на PHP
Пример генерации XML фида на PHP в формате YRL (Yandex Realty Language) для Яндекс.Недвижимости и других сервисов.
3455
+1
Генерация XML файла для Google Merchant
Пример генерации XML-фида для Google Merchant на PHP с минимальным набором обязательных полей.
3720
+1
Генерация sitimap.xml c помощью Xenu's
Если требуется быстро сделать файл карты сайта, поможет программа «Xenu». Также она выявит битые ссылки и недоступные...
3487
0
Примеры использования cURL в PHP
cURL PHP – это библиотека предназначенная для получения и передачи данных через такие протоколы, как HTTP, FTP, HTTPS....
134175
+20
Пример парсинга html-страницы на phpQuery
phpQuery – это удобный HTML парсер взявший за основу селекторы, фильтры и методы jQuery, которые позволяют...
39252
+19
Генерация счета на оплату PDF PHP
С помощью расширения dompdf можно легко сформировать PDF файл. По сути, dompdf - это конвертер HTML в PDF который...
43791
+29