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]   

> Без описания
supirworeor
Отправлено: 26 Декабря, 2012 - 11:58:37
Post Id


Новичок


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


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




Задача: необходимо средствами PHP получить из FB2 обложку книги.
Сначала реализовал это следующим способом:



И это работало.
Но после массового извлечения обложек стало ясно, что изредка за binary[0] находится не то, что нужно. И поэтому необходимо уточнение в вызове.
Нужна логика вроде: "Получить значение элемента BINARY у которого атрибут ID равен COVER.JPG".

Как это реализовать?
Прошу дать пример решения данной или аналогичной задачи.

Структура того, что ищу:

CODE (htmlphp):
скопировать код в буфер обмена
  1. <binary content-type="image/jpeg" id="cover.jpg">
  2. необходимые данные
  3. </binary>
 
 Top
esterio
Отправлено: 26 Декабря, 2012 - 12:30:50
Post Id



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


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


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




Используйте if. Вы через simpleXML делаете?
 
 Top
supirworeor
Отправлено: 26 Декабря, 2012 - 12:31:53
Post Id


Новичок


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


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




esterio пишет:
Используйте if. Вы через simpleXML делаете?

Да, SimpleXML.
Про "if" можно чуть более развернуто?

По-любому придется выполнить цикл foreach по элементам binary. А как у каждого элемента проверять значение атрибута id?

(Отредактировано автором: 26 Декабря, 2012 - 12:34:36)

 
 Top
esterio
Отправлено: 26 Декабря, 2012 - 12:41:15
Post Id



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


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


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




PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $xml = '<?xml version="1.0" encoding="UTF-8"?>
  3. <root>
  4.         <binary content-type="image/jpeg" id="cover.jpg">
  5.            необходимые данные
  6.         </binary>
  7.         <binary content-type="image/jpeg">
  8.            необходимые данные
  9.         </binary>
  10.         <binary content-type="image/jpeg" id="cover.jpg">
  11.            необходимые данные
  12.         </binary>
  13. </root>';
  14. $xml = simplexml_load_string($xml);
  15. foreach($xml->binary as $binary)
  16. {
  17.         if($binary->attributes()->id != 'cover.jpg')
  18.                 continue;
  19.         echo (string)$binary, '<br>';
  20. }


?

(Отредактировано автором: 26 Декабря, 2012 - 12:41:39)

 
 Top
supirworeor
Отправлено: 26 Декабря, 2012 - 12:44:34
Post Id


Новичок


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


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




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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB