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
Форумы портала PHP.SU :: Версия для печати :: Вывод распарсенного текста на страницу как HTML
Форумы портала PHP.SU » » XML и его обработка » Вывод распарсенного текста на страницу как HTML

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

1. _cap_ - 10 Августа, 2012 - 10:47:15 - перейти к сообщению
Добрый день.

Есть необходимость вывести распасенный текст из 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.  
2. _cap_ - 10 Августа, 2012 - 15:47:53 - перейти к сообщению
Решение найдено!!! День искал, перепробовал все что можно, но вот оно:

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. ?>

 

Powered by ExBB FM 1.0 RC1