Intereting Posts
Есть ли альтернатива KCacheGrind для Mac Os X оттуда? как сгенерировать PDF с использованием вида блейдов с tcpdf laravel 5? Nginx + php-fpm: ошибка тайм-аута 504 – тайм-аут восходящего потока (110: время ожидания подключения) Получение данных из базы данных и использование их для заполнения формы – WordPress API-интерфейс Softlayer для немедленного отменить различные продукты или в юбилейную дату Ошибка базы данных. Неизвестная ошибка базы данных на phpmyAdmin создать массив из mysql-запроса php Facebook: сообщение опубликовано с PHP SDK, не отправленное на Twitter Объект-объект не может быть найден в – MappingException Создание защищенного паролем Zip-файла с использованием PHP в Windows PHP случайным образом выбирает из списка Как я могу отключить URL-адреса PHP «пасхальное яйцо»? Местное время пользователей PHP PHP-массив для строковой ошибки преобразования Как я могу использовать хеширование MD5 для паролей в Laravel?

Доступ к свойствам объекта (сверление без преобразования массива)

Недавно я работал с tv_grab_uk_rt, который генерирует XML-файл xml-файла. Я написал сценарий для преобразования XML в объект, который я могу пропустить и вставить в базу данных. Пока у меня работает скрипт, я столкнулся с проблемой, которую я искал, чтобы получить разъяснения.

Когда я помещаю XML в объект, я получаю следующее:

SimpleXMLElement Object ( [@attributes] => Array ( [date] => Mon, 23 Dec 2013 04:30:01 GMT [source-info-url] => http://www.radiotimes.com [source-info-name] => Radio Times XMLTV Service [source-data-url] => http://xmltv.radiotimes.com/xmltv/channels.dat [generator-info-name] => XMLTV/0.5.61, tv_grab_uk_rt 1.342, 2011/06/19 06:50:36 [generator-info-url] => http://www.xmltv.org ) [channel] => Array ( [0] => SimpleXMLElement Object ( [@attributes] => Array ( [id] => fiver.channel5.co.uk ) [display-name] => 5* [icon] => SimpleXMLElement Object ( [@attributes] => Array ( [src] => http://img.ruphp.com/php/channel5_star.jpg ) ) ) ) ) 

Допустим, что этот объект содержится в переменной $xml , если я должен был сделать следующее:

 foreach($xml->channel as $channel) { echo $channel->displayname } 

Я понимаю, что смогу эхо-свойство объекта displayname , в данном случае 5* .

Но что произойдет, если я захочу сказать echo src в этом случае http://img.ruphp.com/php/channel5_star.jpg , как бы я сделал это с помощью объекта. Я не могу, например, сделать

 foreach($xml->channel as $channel) { echo $channel->icon->@attributes->src } 

Например, с массивами можно легко сделать

 foreach($xml['channel'] as $channel) { echo $channel['icon']['@attributes']['src']; } 

Но не с объектами. Вместо того, чтобы попасть в бесконечные циклы, я обнаружил, что могу преобразовать объект в массив, подобный этому

  foreach($xml->channel as $channel) { echo $channel['icon']['@attributes']['src']; $channelArray = get_object_vars($channel); } 

Затем я могу просто получить доступ к свойствам в виде массива. Таким образом, мой вопрос действительно заключается в том, что без преобразования объекта в массив существует ли способ просверлить свойства, т. Е.

 $xml->channel->0->displayname