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 не преобразовывает XML

 PHP.SU

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


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

> Без описания
grafillo
Отправлено: 04 Января, 2015 - 18:37:02
Post Id


Посетитель


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


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




Есть XML
CODE (htmlphp):
скопировать код в буфер обмена
  1. <xml><bot login="BOT2" select_room="гогого" id_unreg_user="">SharaBot</bot></xml>

пердаётся методом пост в пхп
PHP:
скопировать код в буфер обмена
  1.  
  2. $req = $_POST['xml'];
  3. $xml  = new SimpleXMLElement($req);  
  4.  

$xml = new SimpleXMLElement($req); - вот эта строчка не работает, причём она не работает только когда xml передаётся методом пост, в чём ошибка?
 
 Top
caballero
Отправлено: 05 Января, 2015 - 00:11:03
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


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




значит не такая строка передается

попробуй убрать русские буквы


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
grafillo
Отправлено: 05 Января, 2015 - 09:15:30
Post Id


Посетитель


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


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




строка передаётся именно такая я проверил, я русские буквы мне нужны как мне их убрать то?
 
 Top
skiphog
Отправлено: 05 Января, 2015 - 10:02:22
Post Id



Частый гость


Покинул форум
Сообщений всего: 139
Дата рег-ции: Дек. 2014  
Откуда: Киров, Россия


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




Скорее всего проблема в кодировке.
Попробуйте
PHP:
скопировать код в буфер обмена
  1. $req = iconv('cp1251','utf-8',$_POST['xml']);
  2. $xml = new SimpleXMLElement($req);

(Отредактировано автором: 05 Января, 2015 - 11:58:27)

 
My status
 Top
caballero
Отправлено: 05 Января, 2015 - 10:15:55
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


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




[quote=grafillo][/quote]
ты совсем тупой?
убрать русские буквы надо чтобы убедится что проблема именно в кодировке.

чтобы решать вопрос сначала нужно найти причину а не плодить десяток тем надеясь на чудо и расказывать фантастику что пост портит xml.

проверь что работает без русских букв.
если работает, что скорее всего, тогда надо с кодировками разбираьтся.
например перевести страницу в UTF-8


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Мелкий Супермодератор
Отправлено: 05 Января, 2015 - 11:32:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




caballero пишет:
расказывать фантастику что пост портит xml.

Или проверить, наконец, не включена ли какая глупость вроде магических кавычек. XML поломает только в путь.


-----
PostgreSQL DBA
 
 Top
grafillo
Отправлено: 05 Января, 2015 - 11:44:17
Post Id


Посетитель


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


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




пишет ошибку
Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in C:\HomServ\home\troll_ch\php\boten.php:21 Stack trace: #0 C:\HomServ\home\troll_ch\php\boten.php(21): SimpleXMLElement->__construct('') #1 {main} thrown in C:\HomServ\home\troll_ch\php\boten.php on line 21
как я и говорил надо преобразовать както содержание post в xml
(Добавление)
кароч если передаю хмл без атрибутов
CODE (htmlphp):
скопировать код в буфер обмена
  1. xml><bot ><login>Пипка</login><room>ааапп</room></bot></xml>

тогда всё норм работает
как только отправляю xml с атрибутами
CODE (htmlphp):
скопировать код в буфер обмена
  1. <xml><bot id="3"><name>ыыы</name><room>room</room></bot></xml>

, сразу выдаётся ошибка
Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: <xml><bot id=\"3\"><name>ыыы</name><room>room</room></bot></xml> in C:\HomServ\home\troll_ch\php\boten.php on line 18
то есть кароч методом пост толи кавычки плохо передаются толи что не пойму, вообщем атрибуты использовать нельзя чтоли?
 
 Top
Мелкий Супермодератор
Отправлено: 05 Января, 2015 - 13:30:18
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Ответ в теме уже озвучен.


-----
PostgreSQL DBA
 
 Top
grafillo
Отправлено: 05 Января, 2015 - 14:12:10
Post Id


Посетитель


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


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




Мелкий пишет:
Ответ в теме уже озвучен.

куда смотреть?
в упор не вижу(((
 
 Top
esterio
Отправлено: 05 Января, 2015 - 14:19:41
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




grafillo
вам как всегда по два раза обьяснять надо?
PHP:
скопировать код в буфер обмена
  1. $req= '<xml><bot login="abrakadabra" select_room="abrakadabra" id_unreg_user="">SharaBot</bot></xml>';
  2. $xml  = new SimpleXMLElement($req);
  3. var_dump($xml);

суть в том чтобы временно убрать кирилицу з xml для проверки версии о кодировке.
если сейчас не понятно то я уже не знаю как по другому обьяснить

(Отредактировано автором: 05 Января, 2015 - 14:20:17)

 
 Top
grafillo
Отправлено: 05 Января, 2015 - 15:15:50
Post Id


Посетитель


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


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




esterio пишет:
grafillo
вам как всегда по два раза обьяснять надо?
PHP:
скопировать код в буфер обмена
  1. $req= '<xml><bot login="abrakadabra" select_room="abrakadabra" id_unreg_user="">SharaBot</bot></xml>';
  2. $xml  = new SimpleXMLElement($req);
  3. var_dump($xml);

суть в том чтобы временно убрать кирилицу з xml для проверки версии о кодировке.
если сейчас не понятно то я уже не знаю как по другому обьяснить


да всё нормально работает с кирилицей и с латиницей пока не использую атрибуты, как только ставлю какой-нибудь атрибут сразу выскакивает ошибка, пишу ж )
там проблемы толи в кавычках толи в чём(((

(Отредактировано автором: 05 Января, 2015 - 15:16:30)

 
 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