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 :: Чтение строки

 PHP.SU

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


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

> Описание: Выдрать нужный кусок текста из строки
AdDa
Отправлено: 14 Октября, 2016 - 14:51:42
Post Id


Новичок


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


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




Добрый день, помогите пожалуйста с решением, допустим имеется строка вида...
<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>
или может подскажите как лучше реализовать ?
 
 Top
difight
Отправлено: 14 Октября, 2016 - 14:56:55
Post Id



Посетитель


Покинул форум
Сообщений всего: 355
Дата рег-ции: Нояб. 2011  


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




 
My status
 Top
AdDa
Отправлено: 14 Октября, 2016 - 15:18:44
Post Id


Новичок


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


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





что то не получается... Строка -
<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.  
 
 Top
difight
Отправлено: 14 Октября, 2016 - 15:20:44
Post Id



Посетитель


Покинул форум
Сообщений всего: 355
Дата рег-ции: Нояб. 2011  


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




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 - вас тут ниче не смущает ?Улыбка
 
My status
 Top
AdDa
Отправлено: 14 Октября, 2016 - 15:24:39
Post Id


Новичок


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


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




ну да , запутался маленько , поправил, все равно ничего не выводит
Что то у меня вообще файл не открывает ...
$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);

(Отредактировано автором: 14 Октября, 2016 - 15:51:24)

 
 Top
difight
Отправлено: 14 Октября, 2016 - 15:55:17
Post Id



Посетитель


Покинул форум
Сообщений всего: 355
Дата рег-ции: Нояб. 2011  


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




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);

Что выдает?
 
My status
 Top
AdDa
Отправлено: 14 Октября, 2016 - 15:58:18
Post Id


Новичок


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


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




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);

Что выдает?


Весь файл выдает...
(Добавление)
$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 вывелось, все круто !)
Всем спасибо Радость

(Отредактировано автором: 14 Октября, 2016 - 16:23:28)

 
 Top
difight
Отправлено: 14 Октября, 2016 - 16:35:12
Post Id



Посетитель


Покинул форум
Сообщений всего: 355
Дата рег-ции: Нояб. 2011  


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




Всегда эту тактику применяю, помолчал немного ты сам и разобрался Голливудская улыбка
 
My status
 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