PHP.SU

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

Страниц (5): « 1 [2] 3 4 5 »

> Найдено сообщений: 62
I_CaR Отправлено: 10 Августа, 2012 - 06:01:00 • Тема: XML-русские параметры • Форум: XML и его обработка

Ответов: 13
Просмотров: 11038
Мелкий пишет:

Цитата:
PHP:
скопировать код в буфер обмена
  1. simplexml_load_string($xml)->{'каталог'}->{'описание'}
  2.  

В общем-то, даже


Само собой, только если скрипт в UTF8

utf8 Блин! Как же дорога эта кодировочка.
Спасибо! Мелкий, я просто упустил из виду последнюю твою строку! Блин! Не хватает внимательности!
I_CaR Отправлено: 09 Августа, 2012 - 06:33:06 • Тема: XML (разметка на кириллице) • Форум: Напишите за меня, пожалуйста

Ответов: 5
Просмотров: 96
Всё! Задачу решил! Не только указанием кодировки XML в коде "header('...charset...)", но и + перекодировки самого PHP. (и это ещё только локально, что ещё ждёт на серваке у хостера не известно...)
Вот блин кириллица, и кто её продвигает?
I_CaR Отправлено: 09 Августа, 2012 - 06:19:41 • Тема: XML-русские параметры • Форум: XML и его обработка

Ответов: 13
Просмотров: 11038
Всё! Задачу решил! Не только указанием кодировки XML в коде "header('...charset...)", но и + перекодировки самого PHP. (и это ещё только локально, что ещё ждёт на серваке у хостера не известно...). Хм
Вот блин кириллица, и кто её продвигает?
I_CaR Отправлено: 08 Августа, 2012 - 08:52:04 • Тема: XML (разметка на кириллице) • Форум: Напишите за меня, пожалуйста

Ответов: 5
Просмотров: 96
Доброго всем
Совсем застрял.... (да и с получением данных через XML(в кириллице) впервые столкнулся)
Есть примерно такого вида XML:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <?xml version="1.0" encoding="windows-1251"?>
  3. <сообщение>
  4. <параметры>
  5.   <каталог id="10" имя_каталога="Каталог 1">
  6.     <наименование наименование_товара="Товар 1"/>
  7.     <описание текст="текст о товаре 1"/>
  8.     <цены цена_1="95" цена_2="100" цена_3="90"/>
  9.   </каталог>
  10.   <каталог id="20" имя_каталога="Каталог 2">
  11.     <наименование наименование_товара="Товар 2"/>
  12.     <описание текст="текст о товаре 1"/>
  13.     <цены цена_1="195" цена_2="200" цена_3="190"/>
  14.   </каталог>
  15. </параметры>
  16. </сообщение>
  17.  


Пробовал напримере с XML на латинице получать в переменные PHP данные так:
PHP:
скопировать код в буфер обмена
  1.  
  2.  header('Content-type: text/html; charset=windows-1251');
  3.  $xml = simplexml_load_file('XML/data.xml');
  4.  
  5.  foreach ($xml->parametr as $parametr)
  6.  {
  7.           foreach ($parametr->catalogue as $catalogue)
  8.           {
  9.  
  10.                  print ($catalogue[catalogname]);                
  11.  
  12.  
  13.                  print ($catalogue[id]);
  14.                  print ($catalogue->name[tovname]);
  15.                  // или так тоже можно: print ($catalogue->{name}["tovname"]);
  16.                  print ($catalogue->price[internet]);
  17.                  print ($catalogue->text[tovtext]);
  18.           }
  19.  }
  20.  


С латинской разметкой понятно, а как быть с кириллическим XML,
что бы в PHP получить нечто такого:
print (${каталог}->{"наименование"}["наименование_товара"]);

Всё что советовали приходилось в один текстовый массив.
Из него данные тоже не смог выдернуть, приходил NULL.

Мне просто нужно получить данные типа:
a:=каталог_01;
b:=товар_01
c:=цена_01
...
а1:=каталог_X
b1:=товар_0X
...
и так далее, а дальше, из допустим, каталогов_X, я соберу массив. И буду оперировать данными от туда уже по назначению.

Или может я вообще не так представляю картину передачи данных из XML в PHP и далее в БД?
Третий день топчусь на месте (только из-за кириллицы).
(Добавление)
Почитал :
хороший, понятный мануал
Даже вопросов не возникло, вроде более-менее доступно для понимания.
Но там ни слово про то, если XML в кириллическом формате тегов.
пример из мануала "echo $movies->movie->{'great-lines'}->line;"
вот как он должен выглядеть на кириллице?
выходит, что как-то вот так? "print $фильмы->кино->..." Но ведь переменные должны иметь имя в латинице!
I_CaR Отправлено: 08 Августа, 2012 - 06:05:39 • Тема: XML-русские параметры • Форум: XML и его обработка

Ответов: 13
Просмотров: 11038
Вы меня простите за недопонимание, но с передачей параметров через XML, я столкнулся впервые.
Попробовал:
var_dump($xml->{'Каталог'}->attributes('Единица'));
здесь выходит ошибка - "var_dump() [function.var-dump]: Node no longer exists in [путь\файл].php on line 10
object(SimpleXMLElement)#3 (0) { }"
и так:
var_dump($xml->{'Каталог'}->{'Единица'});
здесь получаю NULL
----------------
это XML:

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?xml version="1.0" encoding="windows-1251"?>
  3. <messages>
  4.    <parametr>
  5.        <catalogue id="10" catalogname="Каталог 1">
  6.        <name tovname="Товар 1"/>
  7.        <text tovtext="текст о товаре 1"/>
  8.        <price internet="95" rozn="100" opt="90"/>
  9.        </catalogue>
  10.    </parametr>
  11. </messages>
  12.  

Вот хотелось бы сообразить код в таком варианте (для XML на кириллице):
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  header('Content-type: text/html; charset=windows-1251');
  3.  $xml = simplexml_load_file('XML/data.xml');
  4. // $xml->{'имя'}->{'наименование'}; - это пробовал для кириллицы
  5.  foreach ($xml->parametr as $parametr)
  6.  {
  7.           foreach ($parametr->catalogue as $catalogue)
  8.           {
  9.                  print ($catalogue[catalogname]);                
  10.                  print ($catalogue[id]);
  11.                  print ($catalogue->{name}["tovname"]);
  12.                              // вот почему не получается получить параметр так?
  13.                              // print (${каталог}->{имя}["наименование"]);
  14.                              // если дерево в XML: каталог->имя(наименование="штучка-дрючка")
  15.                  print ($catalogue->price[internet]);
  16.                  print ($catalogue->text[tovtext]);
  17.       }
  18.  }
  19. ?>
I_CaR Отправлено: 07 Августа, 2012 - 06:36:13 • Тема: XML-русские параметры • Форум: XML и его обработка

Ответов: 13
Просмотров: 11038
Тишина...
Неужели ни кто с рускоязычным XML не работает?
I_CaR Отправлено: 06 Августа, 2012 - 12:07:30 • Тема: XML-русские параметры • Форум: XML и его обработка

Ответов: 13
Просмотров: 11038
попробовал. выдаёт ошибку, как раз по строке 5 :
"Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 4: parser error : Start tag expected, '<' not found in Z:\........\xml_4.php on line 5"
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  header('Content-type: text/html; charset=utf-8');
  3.  
  4.  $xml = simplexml_load_file('XML/file.xml');
  5.  simplexml_load_string($xml)->{'каталог'}->{'описание'};
  6.  
  7.  foreach ($xml->каталог as $catalogue)
  8.  {
  9. ....
  10. }



Такой вот подход тоже не подошёл.
PHP:
скопировать код в буфер обмена
  1.  
  2. ...
  3. foreach ($parametr->{'каталог'} as $catalog)
  4. ...
  5.  


P.S.
Вот если есть код
print ($catalogue->name);
в XML меняю параметр name на наименование
то как его получить исходя из print ($catalogue->name);?
получается, что print ($catalogue->{'наименование'});
Но так данные с этого параметра не приходят.
I_CaR Отправлено: 06 Августа, 2012 - 11:07:09 • Тема: XML-русские параметры • Форум: XML и его обработка

Ответов: 13
Просмотров: 11038
С наименованиями параметров на латинском понятно.
C родителями и дочками тоже понятно (принимаются через foreach).
Я сделал, данные получаю.

Но вот, как тогда, быть с таким вот XML (и он именно на кириллице!):
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?xml version="1.0" encoding="utf-8"?>
  3. <информация>
  4.  
  5.  <каталог id="10">
  6.  <наименование>штучка</наименование>
  7.  <описание>очень нужная штучка</описание>
  8.  </каталог>
  9.  
  10. </информация>


Вот тут я стопорнулся, не могу ни как сообразить, как эти параметры принять в PHP.
I_CaR Отправлено: 06 Августа, 2012 - 09:36:51 • Тема: XML-русские параметры • Форум: XML и его обработка

Ответов: 13
Просмотров: 11038
Panoptik пишет:
foreach попробуйте

А в моём примере разве
CODE (htmlphp):
скопировать код в буфер обмена
  1. foreach ($xml->info as $info)
это не то?

В первом примере вывод:
print ($info[id]);

А как во втором это реализовать?
ведь:
print ($Каталог Идентификатор->Свойство Идентификатор);
Как эти названия параметров на кириллице, преобразовать в латинские?
Или я вообще не в том направлении рою?
Уточню - файл стандарта CommerceML
I_CaR Отправлено: 06 Августа, 2012 - 08:46:36 • Тема: XML-русские параметры • Форум: XML и его обработка

Ответов: 13
Просмотров: 11038
Доброго всем здравия.
Вот возникла необходимость заносить в БД данные вытягивая их из XML.
взялся пробовать с простого.
пример XML:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?xml version="1.0" encoding="utf-8"?>
  3. <messages>
  4.  <info id="10">
  5.  <name>имя</name>
  6.  <text>текст</text>
  7.  </info>
  8. </messages>
  9.  


Тут всё понятно.
Далее PHP-обработчик
PHP:
скопировать код в буфер обмена
  1.  
  2.  header('Content-type: text/html; charset=utf-8');
  3.  $xml = simplexml_load_file('XML/data.xml');
  4.  foreach ($xml->info as $info)
  5.  {
  6.  print ("id=");
  7.  print ($info[id]);
  8.  print ("<br>");
  9.  print ("name=");
  10.  print ($info->name);
  11.  print ("<br>");
  12.  print ("text=");
  13.  print ($info->text);
  14.  print ("<hr>");
  15.  
  16.  }
  17.  


Но это пример, а в реальности пришлось увидеть XML-файл (родом из 1С) с название элементов на русском. Пример:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <КоммерческаяИнформация>
  3.         <Каталог Идентификатор="XXXXXXX" Наименование="Тузики" Владелец="yyyyyy" Единица="шт">
  4.                 <Свойство Идентификатор="Комментарий" Наименование="Дополнительная информация"/>
  5.                 <Свойство Идентификатор="ПолноеНаименование" Наименование="Полное наименование"/>
  6.                
  7.                 <Товар Идентификатор="aaaaaa" ИдентификаторВКаталоге="aaaaaa" Наименование="Тузик с хвостом" Родитель="bbbbbb" Единица="шт">
  8.                 <ЗначениеСвойства ИдентификаторКаталога="cccccc" ИдентификаторСвойства="ПолноеНаименование" Значение="Тузик с хвостом"/>
  9.                 </Товар>
  10.                
  11.                 <Группа Идентификатор="внук" ИдентификаторВКаталоге="внук" Наименование="Собаки" Родитель="сын"/>
  12.                 <Группа Идентификатор="сын" ИдентификаторВКаталоге="сын" Наименование="Тузики" Родитель="родитель"/>
  13.                 <Группа Идентификатор="родитель" ИдентификаторВКаталоге="родитель" Наименование="без документов"/>
  14.         </Каталог>
  15. </КоммерческаяИнформация>
  16.  


Как в таком случае получить данные из XML. Подскажите, как начать.
I_CaR Отправлено: 01 Августа, 2012 - 13:13:12 • Тема: Редирект от iframe (на сервере, а на локалке нет) • Форум: JavaScript & VBScript

Ответов: 0
Просмотров: 1132
Доброго дня ещё раз. Случились - "опаньки"!

Всё работало на локалке нормально, вводится слово, срабатывает iframe с yandex'ом и всё хорошо.
Но стоило закинуть на хостинг, как через менее чем секунду срабатывает редирект на сам яндекс.
Почему так происходит?
(проверял и на платном и на бесплатном хостинге, везде редиректит!)

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <script language="JavaScript">
  3. function OutputText2()
  4.  
  5. {
  6. var x = document.info_input.InputText_2.value;
  7.  
  8. div1.innerHTML = "<iframe src='http://yandex.ru/yandsearch?text="+x+"' frameborder='0' style='width:100%; height:400px' galleryimg='false' scrolling='auto' id='Yframe'></iframe>";
  9.  
  10. }
  11.  
  12. </script>
  13.  
  14. <form name="info_input" target="_self">
  15.  
  16. <select name="InputText_1" id="selectinpt" style="width:280px;">
  17.   <option>......</option>
  18. ....
  19. </select>
  20.  
  21. <input type="text" name="InputText_2" value="" size="25" placeholder="введите строку запроса..." onKeyPress="" />
  22. <input name="button_2" type="button" onClick="OutputText2()" value="Проверить" />
  23.  
  24. </form>
  25.  
  26. <div id=div1></div>
  27.  
  28.  
I_CaR Отправлено: 01 Августа, 2012 - 11:25:19 • Тема: как предать и VALUE и текст через DOM из выбранного option? • Форум: JavaScript & VBScript

Ответов: 2
Просмотров: 920
to: Zuldek
Не, пошёл другим путём! вроде не запутанный
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. var slct = document.getElementById("selectinpt");
  3. var selText = slct.options[slct.selectedIndex].innerHTML;
  4.  
I_CaR Отправлено: 01 Августа, 2012 - 10:47:51 • Тема: как предать и VALUE и текст через DOM из выбранного option? • Форум: JavaScript & VBScript

Ответов: 2
Просмотров: 920
Доброго всем дня.
Есть такой код:

CODE (html):
скопировать код в буфер обмена
  1.  
  2. <script language="JavaScript">
  3. function OutputText2()
  4.  
  5. {
  6. var x = document.info_input.InputText_2.value;
  7. var y = document.info_input.InputText_1.value;
  8.  
  9. var a = document.getElementById("seleсtinpt"); //такой вариант точно не подходит. Он берёт не то, что выбрано
  10.  
  11. }
  12.  
  13. <form name="info_input" method="post">
  14. <select name="InputText_1" id="seleсtinpt">
  15.   <option value="01" label="Красноярск">Красноярск</option>
  16.   <option value="02" label="Красноярский край">Красноярский край</option>
  17.   <option value="03" label="Россия">Россия</option>
  18. <input name="button_2" type="button" onClick="OutputText2()" value="Проверить">
  19. </form>
  20.  


Смог передать через DOM только value от выбранного option
А как передать label или сам текст между тегами "...>Красноярск</option>" например?
I_CaR Отправлено: 25 Апреля, 2012 - 13:29:59 • Тема: Подключение счётчика к бесплатному хостингу • Форум: Вопросы новичков

Ответов: 0
Просмотров: 81
Здравствуйте.
Вот чего-то мудрю, методом научного тыка (пытаюсь узнать количество закачек с бесплатного хостинга [он без PHP]).
Намудрил следующее:

PHP:
скопировать код в буфер обмена
  1. if ($_GET['book']==1) {
  2. header("location: http://www.sitename.host.ru/soft/archive.zip"); //Это файл на хосте без php
  3. $file=fopen("http://with-php-site.ru/counter/book1.txt","a+"); //book1.txt - файл-для резльтата, он на сайте с PHP
  4. flock($file,LOCK_EX);
  5. $count=fread($file,100);
  6. $count++;
  7. ftruncate($file,0);
  8. fwrite($file,$count);
  9. flock($file,LOCK_UN);
  10. fclose($file);
  11.  

каталог counter с правами 777, файл book1.txt с 666
Далее:
на сайте с хостингом без PHP прописываю линьк:
CODE (html):
скопировать код в буфер обмена
  1. <a href="http://with-php-site.ru/counter/counter.php?book=1" target="_blank">


раз файлы скачиваются, значит header ловится, но вот в book1.txt ни чего не пишется.
Такой вариант с одной стороны сайтом без php и с другой с php в принципе невозможен для подсчёта закачек?
Или я просто в чём-то (в коде) ошибся?
Но ведь работают же как-то скрипты-опенстата?
Они же не залазят непосредственно к хостеру где работает PHP.
I_CaR Отправлено: 24 Февраля, 2012 - 09:45:04 • Тема: создание изображений • Форум: Обсуждение статей

Ответов: 5
Просмотров: 2785
DelphinPRO пишет:
выводите две строки (каждую - отдельным выводом функции), координаты расссчитывайте вручную.

Спасибо большое! Ответ помог, данный способ сработал.

Страниц (5): « 1 [2] 3 4 5 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB