![]() |
|
| Правила Форума редакция от 22.06.2020 |
|
|||||||
|
|
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже. |
|
![]() |
|
|
Опции темы | Опции просмотра |
Language
|
|
|
#1
|
|
Неактивный пользователь
Пол:
Регистрация: 28.02.2005
Сообщений: 23
Репутация: 1
|
Помогите сделать xml парсер для получения информации о погоде с сайта gismeteo.ru с последующим выводом информации в виде html странички с текстом для последующей публикации на моем сайте. Вещь нужная и многим требующаяся (судя по отзывам в сети), но до сих пор не реализованная в виде пособия для чайников (коим я и являюсь).
|
|
|
|
| Реклама: | Чужой Ромул рецензия | вентилятор wrw 50-30/25-4d | бинокуляры для ювелиров | купить билеты руки вверх 2026 - redkassa.ru | lenovo ideapad slim 3 16ahp10 |
|
|
#2
|
|
Неактивный пользователь
Регистрация: 23.11.2008
Сообщений: 2
Репутация: 1
|
Код:
function xml_to_ini($file){
$contents = null;
$item = 0;
$open = file($file);
foreach($open as $line){
if(strstr($line, '<item>')) $line = str_replace('<item>', '[item_'.$item++.']', $line);
if(!strstr($line, '<?xml') and !strstr($line, '<rss') and !strstr($line, 'rss>') and !strstr($line, 'channel>') and !strstr($line, '<link') and !strstr($line, '<category') and !strstr($line, '<enclosure') and !strstr($line, '<source') and !strstr($line, '<guid') and !strstr($line, '</item>')) $contents.= $line;
}
list($tmp, $contents)=explode("</image>\r\n", $contents);
$contents = str_replace(' ', '', $contents);
$contents = str_replace(' ', '', $contents);
$contents = str_replace('<title>', 'title = \'', $contents);
$contents = str_replace('</title>', '\';', $contents);
$contents = str_replace('<description>', 'value = \'', $contents);
$contents = str_replace('</description>', '\';', $contents);
$fp = fopen('base.ini', 'w+');
$fw = fwrite($fp, $contents);
fclose($fp);
}
function parse_ini($file){
$arr=null;
$open=file($file);
foreach($open as $line){
$line=str_replace("\r\n", '', $line);
if(substr($line, 0, 1)!=';'){
if(!empty($line)){
if(preg_match("/\[(.*?)\]/i", $line)){
$par=preg_replace("'\[(.*?)\]'", '\\1', $line);
}else{
if(preg_match("/(.*?)=(.*?);/i", $line)){
$line=str_replace(' = ', '=', $line);
$line=str_replace(' =', '=', $line);
$line=str_replace('= ', '=', $line);
list($key, $value)=explode('=', $line);
list($value, $tmp)=explode(';', $value);
$key=str_replace(' ', '',$key);
$value=preg_replace("'\'(.*?)\''", '\\1', $value);
$value=preg_replace("'\"(.*?)\"'", '\\1', $value);
//$value = preg_replace("' (.*?)'", '\\1', $value);
if($value=='true') $value = true;
else
if($value=='false') $value = false;
if(empty($par)){
$arr[$key]=$value;
}else{
$arr[$par][$key]=$value;
}
}else{
$arr['error'][]=$line;
}
}
}
}
}
if(empty($arr['error'])){
return $arr;
}else{
return "<pre>В структуре файла конфигурации есть ошибки, проверьте файл $file!</pre>";
}
}
xml_to_ini('http://informer.gismeteo.ru/rss/26063.xml');
parse_ini('base.ini'); |
|
|
|
| Сказали спасибо: |
![]() |
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Gismeteo серийник | karpo3 | Мобильный Софт | 68 | 03.10.2012 12:22 |
| Ищу парсер сайтов | bssergy | Скорая помощь | 5 | 05.11.2011 02:49 |
| Помогите написать парсер для текстового документа!!! | Diy666 | Visual C++ / С/C++ | 3 | 23.12.2007 07:59 |
|
|