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

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

1. AdDa - 14 Октября, 2016 - 14:51:42 - перейти к сообщению
Добрый день, помогите пожалуйста с решением, допустим имеется строка вида...
<id>1</id><name>NAME1</name><descrp>DESCRP1</descrp><id>2</id><name>NAME2</name><descrp>DESCRP2</descrp>
элементов может быть много.
Суть задачи, получить текст из блока <descrp> </descrp> определенного id , то бишь если <id>1</id> то и текст должен вывестись DESCRP1
Увы моих знаний пока хватило на это...
PHP:
скопировать код в буфер обмена
  1.  
  2. $qwe = '<id>'.$item['id'].'</id>' ; // получил нужный ID и записал его в переменную
  3. $section = file_get_contents('file.xml');  // считал все строку из нужного файла
  4. $pos = strripos($section,$qwe); // Нашел позицию нужного ID
  5.  

по логике надо с полученной позиции пройтись до первого вхождения <descrp> и считать текст до </descrp>
или может подскажите как лучше реализовать ?
2. difight - 14 Октября, 2016 - 14:56:55 - перейти к сообщению
3. AdDa - 14 Октября, 2016 - 15:18:44 - перейти к сообщению

что то не получается... Строка -
<product><id>1</id><name>NAME1</name><description>DESCRP1</description></product>
<product><id>2</id><name>NAME2</name><description>DESCRP2</description></product>
<product><id>3</id><name>NAME3</name><description>DESCRP3</description></product>
PHP:
скопировать код в буфер обмена
  1.  
  2. $section = simpleXML_load_file('file.xml');  
  3.                         $duct = $duct->product->id[3];
  4.                         $desc = $duct->product->id[3]->description;
  5.                         echo $desc;
  6.  
4. difight - 14 Октября, 2016 - 15:20:44 - перейти к сообщению
AdDa пишет:
что то не получается... Строка -
<product><id>1</id><name>NAME1</name><description>DESCRP1</description></product>
<product><id>2</id><name>NAME2</name><description>DESCRP2</description></product>
<product><id>3</id><name>NAME3</name><description>DESCRP3</description></product>
PHP:
скопировать код в буфер обмена
  1.  
  2. $section = simpleXML_load_file('file.xml');  
  3.                         $duct = $duct->product->id[3];
  4.                         $desc = $duct->product->id[3]->description;
  5.                         echo $desc;
  6.  

http://prntscr[dot]com/ctqm6j - вас тут ниче не смущает ?Улыбка
5. AdDa - 14 Октября, 2016 - 15:24:39 - перейти к сообщению
ну да , запутался маленько , поправил, все равно ничего не выводит
Что то у меня вообще файл не открывает ...
$section = simpleXML_load_file('file.xml');
echo $section ;
print_r ($section);
_-------------------
Открылся ... , пробую еще
(Добавление)
difight пишет:
AdDa пишет:
что то не получается... Строка -
<product><id>1</id><name>NAME1</name><description>DESCRP1</description></product>
<product><id>2</id><name>NAME2</name><description>DESCRP2</description></product>
<product><id>3</id><name>NAME3</name><description>DESCRP3</description></product>
PHP:
скопировать код в буфер обмена
  1.  
  2. $section = simpleXML_load_file('file.xml');  
  3.                         $duct = $duct->product->id[3];
  4.                         $desc = $duct->product->id[3]->description;
  5.                         echo $desc;
  6.  

http://prntscr[dot]com/ctqm6j - вас тут ниче не смущает ?Улыбка

-------------------------------- -------------------------------- ----------------
Ничего не выводит
PHP:
скопировать код в буфер обмена
  1. $section = simplexml_load_file('file.xml');
  2. $desc = $section->product->id[3]->description;
  3. print_r($desc);
6. difight - 14 Октября, 2016 - 15:55:17 - перейти к сообщению
AdDa пишет:
ну да , запутался маленько , поправил, все равно ничего не выводит
Что то у меня вообще файл не открывает ...
$section = simpleXML_load_file('file.xml');
echo $section ;
print_r ($section);
_-------------------
Открылся ... , пробую еще
(Добавление)
difight пишет:
AdDa пишет:
что то не получается... Строка -
<product><id>1</id><name>NAME1</name><description>DESCRP1</description></product>
<product><id>2</id><name>NAME2</name><description>DESCRP2</description></product>
<product><id>3</id><name>NAME3</name><description>DESCRP3</description></product>
PHP:
скопировать код в буфер обмена
  1.  
  2. $section = simpleXML_load_file('file.xml');  
  3.                         $duct = $duct->product->id[3];
  4.                         $desc = $duct->product->id[3]->description;
  5.                         echo $desc;
  6.  

http://prntscr[dot]com/ctqm6j - вас тут ниче не смущает ?Улыбка

-------------------------------- -------------------------------- ----------------
Ничего не выводит
PHP:
скопировать код в буфер обмена
  1. $section = simplexml_load_file('file.xml');
  2. $desc = $section->product->id[3]->description;
  3. print_r($desc);

Что выдает?
PHP:
скопировать код в буфер обмена
  1. var_dump($section);
7. AdDa - 14 Октября, 2016 - 15:58:18 - перейти к сообщению
difight пишет:
AdDa пишет:
ну да , запутался маленько , поправил, все равно ничего не выводит
Что то у меня вообще файл не открывает ...
$section = simpleXML_load_file('file.xml');
echo $section ;
print_r ($section);
_-------------------
Открылся ... , пробую еще
(Добавление)
difight пишет:
AdDa пишет:
что то не получается... Строка -
<product><id>1</id><name>NAME1</name><description>DESCRP1</description></product>
<product><id>2</id><name>NAME2</name><description>DESCRP2</description></product>
<product><id>3</id><name>NAME3</name><description>DESCRP3</description></product>
PHP:
скопировать код в буфер обмена
  1.  
  2. $section = simpleXML_load_file('file.xml');  
  3.                         $duct = $duct->product->id[3];
  4.                         $desc = $duct->product->id[3]->description;
  5.                         echo $desc;
  6.  

http://prntscr[dot]com/ctqm6j - вас тут ниче не смущает ?Улыбка

-------------------------------- -------------------------------- ----------------
Ничего не выводит
PHP:
скопировать код в буфер обмена
  1. $section = simplexml_load_file('file.xml');
  2. $desc = $section->product->id[3]->description;
  3. print_r($desc);

Что выдает?
PHP:
скопировать код в буфер обмена
  1. var_dump($section);


Весь файл выдает...
(Добавление)
$desc = $section->product[0]->id->description; - вот так выдает мне SimpleXMLElement Object ( )

$desc = $section->product[0]->id; - так выдает мне SimpleXMLElement Object ( [0] => 1 )
(Добавление)
и сразу спрошу, почему такой вариант не работает product[$qwe] ?
(Добавление)
Такс.. набросал что то, вот уже выводит всю строку...
PHP:
скопировать код в буфер обмена
  1. $section = simplexml_load_file('storage/database/product.table.xml');
  2.                            $namespaces = $section->getNamespaces(true);
  3.                            $desc = $section->product[0]->children($namespaces["description"]);
  4.                         print_r($desc);

сейчас надо выдрать как то дескрптион... ну и актуален вопрос, как вместо product[0] записать product[$qwe] ?
(Добавление)
Все сделал , все заработало ! ))
p.s. забыл что счет с 0 шел )
PHP:
скопировать код в буфер обмена
  1. $qwe = $item['id'] -1 ;
  2.                         $section = simplexml_load_file('storage/database/product.table.xml');
  3.                            $desc = $section->product[$qwe]->description;
  4.                         print_r($desc);

Но выводит SimpleXMLElement Object ( [0] => CL-50, HTI - ОПИСАНИЕ )
как сделать что чисто CL-50, HTI - ОПИСАНИЕ выводил ?
через echo вывелось, все круто !)
Всем спасибо Радость
8. difight - 14 Октября, 2016 - 16:35:12 - перейти к сообщению
Всегда эту тактику применяю, помолчал немного ты сам и разобрался Голливудская улыбка

 

Powered by ExBB FM 1.0 RC1