Arhlit - информационные технологии

PHP — разбор iFrame с HTML-страницы

Привет, ребята, у меня есть базовое PHP-приложение, которое загружает страницу с видео с одного из этих бесплатных сайтов потокового телевидения. Вы устанавливаете эпизод, сезон и шоу, которое хотите просмотреть, а серверное приложение анализирует HTML-тег iFrame, который содержит это видео. Приложение работает, анализируя HTML-страницу с помощью метода PHP preg_match_all(), чтобы получить все вхождения HTML-тега iFrame. Я использую следующую строку в качестве шаблона, "/iframe .*\>/". Это работает примерно для половины видеоплееров на сайте, но по какой-то причине не работает со всеми остальными.

Например, видео по адресу http://www.free-tv-video-online.me/player/novamov.php?id=huv5cpp5k8cia, размещенный на видеосайте novamov, легко анализируется. Однако видео отображается по адресу http://www.free-tv-video-online.me/player/gorillavid.php?id=8rerq4qpgsuw, размещенный на gorillavid, не найден функцией preg_match_all(), несмотря на то, что он явно отображается в исходном коде HTML при проверке элемента с помощью хром. Почему мой скрипт не возвращает правильные результаты и почему это поведение зависит от видеоплеера, который использует видео? Пожалуйста, может кто-нибудь объяснить?

20.12.2013

Ответы:


1

Пытаться:

$dom = new DOMDocument; @$dom->loadHTML('yourURLHere');
$iframe = $dom->getElementsByTagName('iframe');
foreach($iframe as $ifr){
  $ifrA[] = $ifr->getAttribute('src');
}

Теперь в массиве $ifrA должны быть ваши iframe src.

20.12.2013
  • Я продолжаю получать Call to a member function getElementsByTagName() on a non-object in, когда пробую ваш подход 20.12.2013
  • Новые материалы

    12 сайтов с искусственным интеллектом, которые поразят вас
    Приготовьтесь поразить воображение Сегодня существует несколько веб-сайтов, использующих искусственный интеллект (ИИ). От индивидуальных рекомендаций по новостям до более умных поисковых..

    Скрытый технический долг в системах машинного обучения [NeurIPS 2015]
    Что такое технический долг? Технический долг — это метафора, введенная Уордом Каннингемом в 1992 году, чтобы объяснить долгосрочные затраты, связанные с быстрым продвижением в разработке..

    Алгоритм быстрой сортировки в Python
    Всем привет, добро пожаловать на programminginpython.com . Здесь я покажу вам, как реализовать алгоритм быстрой сортировки в Python. В предыдущих статьях я рассмотрел Сортировку вставкой ,..

    Как использовать манипулирование объектами в JavaScript
    Объекты являются важным строительным блоком JavaScript. Они позволяют группировать свойства и методы вместе. Объект представляет собой набор свойств. Свойства идентифицируются с..

    Разработка игр с помощью Godot Engine: мощный инструмент с открытым исходным кодом
    Разработка игр — творческий и сложный процесс, требующий множества навыков и инструментов. Одним из наиболее важных инструментов является игровой движок, который представляет собой программную..

    От XML к аннотациям: переход к современной конфигурации Spring
    Введение Фреймворк Spring претерпел значительную эволюцию с момента своего создания. Одним из заметных изменений стал переход от конфигураций на основе XML к конфигурациям, управляемым..

    Я люблю Руби!
    Я люблю Руби! Мне это нравится по той же причине, по которой мне нравится программировать на Python. Он настолько интуитивно понятен, а встроенные методы упрощают решение проблем. Если вы..