Пишем прокси для YML-файлов

Пн, 23 января 2012 @ 7:52 PM написал в Работаем с YML7 комментариев

С момента начала работы генератора yml-файлов прошло совсем немного времени, а количество генераций уже перевалило за 100!

Один из посетителей (назвавшийся как Dorky2000), генерировавших для своего интернет-магазина yml-файл, предложил создать прокси-скрипт, основной задачей которого было бы избавление вебмастеров, генерирующих yml-файлы моим скриптом, от необходимости обновлять yml-файлы на своём хостинге.

Пожалуй, соглашусь, при частом обновлении товарных позиций в прайс-листе обновление файла может превратиться в рутину.

Всё что для этого нужно будет сделать, так это установить на своей площадке специальный скрипт, путь к которому и нужно указывать как путь к yml-файлу, например, в Яндекс.Маркет.

Для начала напишем скрипт для интернет-магазинов с поддержкой PHP. Файл крипта можно закачать в любое удобное место сайта.

По запросу этот скрипт yml-прокси будет получать сгенерированный вами yml-файл и передавать его содержимое Яндексу или другому сервису, которому вы хотите передать yml-файл.

Вот листинг скрипта yml_proxy_v1.php:


<?php
$url = urldecode("http://tagiltsev.ru/xml/flksjf43lkrjf.xml");
$xmlstr = file_get_contents ( $url );
echo $xmlstr;
?>

, где flksjf43lkrjf.xml имя сгенерированного файла.

Как видим, с каждым обновлением yml-файла, потребуется менять его имя в этом скрипте, что равносильно его обновлению.

Вывод: данный способ не решает поставленной задачи.

Развиваем наш скрипт и получаем yml_proxy_v2.php:

<?php
$url = urldecode("http://tagiltsev.ru/xml/".$_POST["url"]);
$xmlstr = file_get_contents ( $url );
echo $xmlstr;
?>

, где параметр "yml" можно задавать в строке запроса, например, http://вашмагазин/yml_proxy_v2.php?yml=fskjhr43kjrh.xml.

Уже лучше, так как, пользуясь таким скриптом, нет необходимости менять что-то на хостинге, а нужно лишь изменять путь к yml-файлу в использующих его сервисах, в том же Яндекс.Маркет в разделе настройки прайс-листа.

Многим этого будет достаточно, но для особо ленивой публики я предлагаю следующую версию скрипта, которая мне больше по душе).

Листинг скрипта yml_proxy_v3.php:

<?php
$url = urldecode("http://tagiltsev.ru/yml_proxy/");
$xmlstr = file_get_contents ( $url );
echo $xmlstr;
?>

Нет никаких параметров! Скрипт будет искать по адресу сайта, с которого идёт запрос, подходящий yml-файл, причём, самый свежий и передавать в сервис. Удобно? Естественно!

Проверить работу скрипта очень просто. После установки скрипта по версии 3, т.е. файл yml_proxy_v3.php, например, в корневую директорию сайта, он будет доступен по адресу: http://вашмагазин/yml_proxy_v3.php и если всё хорошо, то открыв его в любом браузере, мы получим содержимое yml-файла, а при его отсутствии на сервере соответствующее сообщение.

Также следует проверить ваш хостинг на предмет разрешения доступа к чтению файлов с посторонних серверов, например, командой

<?php
var_dump(ini_get('allow_url_fopen'));
?>

Прокси по любой версии скрипта для YML-файлов вполне работоспособны. Используйте их на здоровье. Ваши отзывы, предложения и сообщения об ошибках можете оставлять ниже.

Тагильцев Ю.В.
http://tagiltsev.ru/?goto=312

Теги: php

Всего 7 комментариев на эту тему

  • Webguru написал 2012-01-31 14:51:15:

    Прокси для yml - это вещь!
    Поставил себе в магазин www.*****.ru.
    Яндекс принял и всё работает.

  • валера написал 2013-04-13 03:25:00:

    http://neryhomist.org.ua/ ето наш сайт надо сделать чтоб обявления вигружались на яндекс недвижимость поможите

  • Макс написал 2014-12-06 23:53:39:

    Может что не то делал, но мне какую то ересь сгенерировал вместо моего магазина...

  • Андрей написал 2015-09-23 16:33:42:

    Я новичек как мне выгрузть товар на яндекс маркет?? через програму yml сайт http://www.batis.com.ua

  • Андрей написал 2015-10-28 13:07:16:

    Интернет-магазин строительных материалов «Batis» http://www.batis.com.ua является отличным помощником в выборе любого столярного, малярного, измерительного или же ручного садового инструмента, напольного покрытия, гипсокартонных систем, кровельных материалов, а также много другого, что понадобится в ходе ремонтных либо строительных работ. Наш интернет-магазин является официальным дилером строительных материалов ведущих импортных компаний, в том числе таких как: Krono Original, Topex, Top Tools, Belotta, Neo Tools и многих других, чьё имя говорит само за себя, а качество позволяет пользоваться ими многие годы.

  • Павел написал 2016-10-26 14:47:00:

    Скажите может можно сделать плагины для генерации yml файлов??
    Пока для wp нашел один, но там в валюте нет бел.рубля и он не работает...

  • Zemledelec profi написал 2017-01-18 10:41:59:

    Присоединяюсь к вопросу от 2016-10-26 14:47:00

    только файл нужно сделать из платформы ТОРГСОФТ

Оставить комментарий

поставьте галочку если вы не бот)