Есть код для обновления информации о товарах из другого магазина через файл Яндекс.Маркета. В начале я подгружаю файл с помощью simplexml_load_file(). Сайт одного из новых клиентов размещается на кириллическом домене (итоговая ссылка на файл по типу 'мойсайт.рф/pricelist.xml'), в итоге ничего не работает. Пытался элементарно перевести домен в punycode — не работает.
Мастера, подскажите, как мне быть? Всякие дополнительные библиотеки ставить не могу, т.к. хостинг виртуальный. Заранее всем спасибо!
Простейшая проверка говорит что всё должно работать:
<?php
$xml = simplexml_load_file('https://xn----7sbb5aamccpiegbel3bh1td.xn--p1ai/sitemap.xml');
foreach ($xml->url as $line) {
echo "{$line->loc}\n";
}
Проверьте, нет ли ошибки DNS:
var_dump(gethostbyname('xn----7sbb5aamccpiegbel3bh1td.xn--p1ai'));
Если ошибки DNS нет (команда выше возвращает IP адрес), и вы можете загрузить файл локально из браузера, то обращайтесь в поддержку хостинга.
В вашем конкретном случае похоже на сервере блокируются запросы без заголовка User-Agent. Это легко исправить так:
<?php
$file = file_get_contents('http://xn--80aaanvlco2b3a.xn--p1ai/pricelist.xml', false, stream_context_create([
'http' => [
'header' => 'User-Agent: PHP'
]
]));
$xml = simplexml_load_string($file);
var_dump($xml->shop->name);
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
здравствуйте, есть регулярка для проверки ника при регистрации ~^[^-_][a-zA-Z_\-0-9]*$~u но почему-то пользователь может ввести такой #ник , хэштег одобряется...
Что такое "Правило одного определения"?