Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вывод распарсенного текста на страницу как HTML

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Вывод распарсенного текста со ссылками и картинками на страницу как HTML
_cap_
Отправлено: 10 Августа, 2012 - 10:47:15
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Авг. 2012  


Помог: 0 раз(а)




Добрый день.

Есть необходимость вывести распасенный текст из XML файла.
В моем случае в файле передается некий код Яндекс.Карт. Его необходимо распарсить и вывести на страницу не ка текст, а в виде HTML обьектов.
Я делалтак:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $url = 'http://site.ru/xml.php';
  4.  
  5. $xml = @file_get_contents($url);        //получаем содержимое XML файла в виде одной строки
  6.  
  7. if ($xml) {    
  8.         preg_match_all("/<contact>[^>]+>/", $xml, $contact);         //парсим contact
  9.                 preg_match_all("/<url>[^<]+<\/url>/", $xml, $url);              //парсим url
  10.                 preg_match_all("/<map>[^<]+<\/map>/", $xml, $map);              //парсим map
  11.        
  12.         $count = count($contact[0]);    //число проходов цикла.
  13.        
  14.         for ($i=0; $i < $count; $i++) {
  15.                 echo '<br><b>'.strip_tags($name[0][$i]).'</b>';
  16.                                 echo '<br><b>Сайт: </b><a href="http://'.strip_tags($url[0][$i]).'">http://'.strip_tags($url[0][$i]).'</a>';
  17.                                 echo '<br><b>Схема проезда: </b><br>'.strip_tags($map[0][$i]).';
  18.                                 echo '<br />';
  19.        }
  20. } else {
  21.        echo '<font color="red">Ошибка парсинга '.$url.'</font>';       //выводим ошибку если file_get_contents() вернула false
  22. }
  23. ?>
  24.  


Но при этом переменная $map[0][$i] отображается на странице как текст.

Как мне вывести на страницу саму картинку карты?


Пример кода карты:

CODE (html):
скопировать код в буфер обмена
  1.  
  2. <!-- Этот блок кода нужно вставить в ту часть страницы, где вы хотите разместить карту (начало) -->
  3. <img src="http://static-maps.yandex.ru/1.x/?lang=ru-RU&ll=43.20025199999996,55.21841838219875&size=450,350&z=16&l=map&pt=43.200252,54.217689,pm2lbl" alt="Карта"/>
  4. <div style="width: 450px; text-align: right;"><a href="http://api.yandex.ru/maps/tools/constructor/?lang=ru-RU" target="_blank" style="color: #1A3DC1; font: 13px Arial,Helvetica,sans-serif;">Создано с помощью инструментов Яндекс.Карт</a></div>
  5. <!-- Этот блок кода нужно вставить в ту часть страницы, где вы хотите разместить карту (конец) -->
  6.  

(Отредактировано автором: 10 Августа, 2012 - 10:48:57)

 
 Top
_cap_
Отправлено: 10 Августа, 2012 - 15:47:53
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Авг. 2012  


Помог: 0 раз(а)




Решение найдено!!! День искал, перепробовал все что можно, но вот оно:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $url = 'http://site.ru/xml.php';
  4.  
  5. $xml = @file_get_contents($url);        //получаем содержимое XML файла в виде одной строки
  6.  
  7. if ($xml) {    
  8.         preg_match_all("/<contact>[^>]+>/", $xml, $contact);         //парсим contact
  9.                 preg_match_all("/<url>[^<]+<\/url>/", $xml, $url);              //парсим url
  10.                 preg_match_all("/<map>[^<]+<\/map>/", $xml, $map);              //парсим map
  11.        
  12.         $count = count($contact[0]);    //число проходов цикла.
  13.        
  14.         for ($i=0; $i < $count; $i++) {
  15.                 echo '<br><b>'.strip_tags($name[0][$i]).'</b>';
  16.                                 echo '<br><b>Сайт: </b><a href="http://'.strip_tags($url[0][$i]).'">http://'.strip_tags($url[0][$i]).'</a>';
  17. ///////////////////////// Преобразуем переменную в формат для правильного отображения HTML ///////////////////////////
  18.                                 $text=html_entity_decode($map[0][$i]);
  19.                                 $trans = get_html_translation_table(HTML_ENTITIES);
  20.                                 $trans = array_flip($trans);
  21.                                 $encoded = strtr($text, $trans);
  22. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  23.                                 echo '<br><b>Схема проезда: </b><br>'.$encoded;
  24.                                 echo '<br />';
  25.        }
  26. } else {
  27.        echo '<font color="red">Ошибка парсинга '.$url.'</font>';       //выводим ошибку если file_get_contents() вернула false
  28. }
  29. ?>

(Отредактировано автором: 10 Августа, 2012 - 15:48:19)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« XML и его обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB