Pashka Korchagin
Постоялец
- Регистрация
- 23 Дек 2009
- Сообщения
- 113
- Реакции
- 8
- Автор темы
- #1
Проблема со скриптом парсера погоды в xml файл с Яндекса.
Скрипт работает по крону, запрос подается так:
Полученные данные сохраняются в файле weather_ххххх.xml, с которого забираются в виджет.
Скрипт рабочий, но в данном конкретном случае что-то не срабатывает, получаем 404 и неверную кодировку:
Первая строка должна быть такой: <?xml version="1.0" encoding="utf-8"?>
Не программист и это хреново, автор скрипта пропал.
404- документ не найден, хотя запрос вроде бы верный, и самое главное: Откуда берется кодировка iso-8859-1 вместо utf-8??? Пересмотрел кодировку всех файлов скрипта - utf8 без bom, базу - все верно.
Понимаю что вводных данных маловато, но может посоветуете куда копать. Повторюсь, скрипт рабочий, видел живой пример в настоящем времени, без доработок и изменений в коде.
Скрипт работает по крону, запрос подается так:
PHP:
<?php
class onPogodaCronPogw extends cmsAction {
public function run(){
$options = $this->loadOptions($this->name);
$sources_list = $options['cod_sity'];
$controller = cmsCore::getController('pogoda');
$city_id = $sources_list; // id города
$url = 'http://export.yandex.ru/weather-ng/forecasts/'.$city_id.'.xml';
$userAgent = 'Googlebot/2.1 (+http://www.google.com/bot.html)';
$xml = $_SERVER['DOCUMENT_ROOT'].DIRECTORY_SEPARATOR.'/cache/weather_'.$city_id.'.xml';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
$output = curl_exec($ch);
$fh = fopen($xml, 'w');
fwrite($fh, $output);
fclose($fh);
return true;
}
}
Скрипт рабочий, но в данном конкретном случае что-то не срабатывает, получаем 404 и неверную кодировку:
HTML:
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"[URL]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/URL]">
<html xmlns="[URL]http://www.w3.org/1999/xhtml[/URL]" xml:lang="en" lang="en">
<head>
<title>404 - Not Found</title>
</head>
<body>
<h1>404 - Not Found</h1>
</body>
</html>
Не программист и это хреново, автор скрипта пропал.
404- документ не найден, хотя запрос вроде бы верный, и самое главное: Откуда берется кодировка iso-8859-1 вместо utf-8??? Пересмотрел кодировку всех файлов скрипта - utf8 без bom, базу - все верно.
Понимаю что вводных данных маловато, но может посоветуете куда копать. Повторюсь, скрипт рабочий, видел живой пример в настоящем времени, без доработок и изменений в коде.
Последнее редактирование модератором: