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 :: Условие при работе с классом SimpleXMLElement

 PHP.SU

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


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

> Без описания
maximus_xx
Отправлено: 18 Ноября, 2015 - 14:40:38
Post Id


Новичок


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


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




Есть скрипт который считывает xml-файл с .gz архива и далее выводит данные.

В чем суть проблемы?
Когда файл xml в архиве проблем нету. Но вот когда в архиве любой другой, например просто текст, то выбивает ошибку:

Цитата:
Warning: SimpleXMLElement::__construct(): compress.zlib://http://site.ru/files/157-test2.gz:1: parser error : Start tag expected, '<' not found в функции xml_import_view() (строка 107 в файле).


Вопрос
Как мне сделать условие при котором если файл не xml то скрипт не должен исполнятся.

Вот собственно код где используется класс:
PHP:
скопировать код в буфер обмена
  1.  
  2. $xml = new SimpleXMLElement("compress.zlib://$file_sourse_url", NULL, TRUE);
  3. $body = $xml->body;
  4. print $body;
  5.  
 
 Top
Sail
Отправлено: 18 Ноября, 2015 - 15:55:32
Post Id



Участник


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


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




maximus_xx пишет:
Как мне сделать условие при котором если файл не xml то скрипт не должен исполнятся

Например:
PHP:
скопировать код в буфер обмена
  1.         try {
  2.             libxml_use_internal_errors(true);
  3.             $xml = new SimpleXMLElement("compress.zlib://$file_sourse_url", NULL, TRUE);
  4.         } catch (Exception $ex) {
  5.             libxml_clear_errors();
  6.             exit('Ожидались данные в XML-формате.');
  7.         }
  8.  
 
 Top
maximus_xx
Отправлено: 18 Ноября, 2015 - 17:45:01
Post Id


Новичок


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


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




Sail пишет:
maximus_xx пишет:
Как мне сделать условие при котором если файл не xml то скрипт не должен исполнятся

Например:
PHP:
скопировать код в буфер обмена
  1.         try {
  2.             libxml_use_internal_errors(true);
  3.             $xml = new SimpleXMLElement("compress.zlib://$file_sourse_url", NULL, TRUE);
  4.         } catch (Exception $ex) {
  5.             libxml_clear_errors();
  6.             exit('Ожидались данные в XML-формате.');
  7.         }
  8.  


Спасибо огромное, помогло. А $ex это что за переменная?
 
 Top
Sail
Отправлено: 19 Ноября, 2015 - 08:26:07
Post Id



Участник


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


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




maximus_xx пишет:
А $ex это что за переменная?
Содержит сгенерированный исключением объект типа Exception.
 
 Top
maximus_xx
Отправлено: 19 Ноября, 2015 - 21:42:27
Post Id


Новичок


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


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




Sail пишет:
Содержит сгенерированный исключением объект типа Exception.


Благодарен, помогли немного нубу разобратся Язычок
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB