Кстати, можно обобщить данную фичу с yandex на любое пространство имен.
В парсере вставляем функции:
xml_set_start_namespace_decl_handler($parser, "start_ns");
xml_set_end_namespace_decl_handler($parser, "end_ns");
описание обработчиков:
function start_ns($parser, $prefix, $uri) { //$prefix - выдает ns-имя (например yandex) //$uri - выдает ns-адрес (например http://news.yandex.ru) } function end_ns($parser, $prefix) { }
Все зависит от используемого подхода парсинга. Можно через xml, можно через dom, можно и влоб регулярными выражениями. В данном конкретном случае рассматривается xml-интерпретация.:)
Тег full-text не входит в спецификацию rss, а включен в пространство имен яндекса и обычным разборщиком он игнорируется.
Магнат, +1
Палю тему:
вместо xml_parser_create() используем xml_parser_create_ns(). В этом случае разборщик будет подставлять вместо ns-имени адрес xmlns, заданный в заголовке:
<rss version="2.0" xmlns:yandex="http://news.yandex.ru">
Таким образом в тегах <yandex:full-text> имя yandex будет заменено на адрес http://news.yandex.ru.
Теперь остается прописать в коде:
...'^ITEM^HTTP://NEWS.YANDEX.RU:FULL-TEXT'...
И мы получим все содержимое этого тега)))
Еще вопрос по платникам (никогда не покупал раньше, извините если боян;): если я покупаю какую-нибудь галерею, это означает что ее могу использовать только я и на сайте она больше продаваться не будет, или таких копий в день по сто штук продается?🚬
Спасибо за ссылки! Сейчас буду выбирать🚬 Если у кого-то есть еще предложения, выкладывайте:)
robust, поэкспериментировал со свойствами и согласился с вами🚬 Когда изучал особенности этих свойств, почему-то запомнил о DOM, хотя это совсем не причем... Разница только в том, что одно свойство резервирует место под блок, а второе оставляет пустым. Вот тестовый скрипт:
<html> <head> <style type="text/css"> #test1 { visibility: hidden; } #test2 { display: none; } </style> </head> <body> <div id="test1"> <p>visibility testing code...</p> </div> <div id="test2"> <p>display testing code...</p> </div> <script> var test_id = document.getElementById('test1'); alert(test_id.innerHTML); </script> </body> </html>
Элементы с visibility: hidden; не включаются в DOM.
Используйте visibility: hidden; для элементов, которые в данный момент нет необходимости показывать. В этом случае, в отличие от правила display: none; элемент со своим содержимым не будет вообще включаться в исходный код страницы.
Поздравляю😆