Поиск блока текста, возврат MP3-ссылок с использованием PHP - PullRequest
0 голосов
/ 18 августа 2010

Я только что столкнулся с небольшим количеством проблем с некоторыми PHP в моем последнем проекте.В основном у меня есть блок текста ($text), и я хотел бы найти этот текст и вернуть все ссылки MP3.Я знаю, что это как-то связано с регулярными выражениями, но я просто не могу заставить его работать.

Вот мой текущий код:

    if(preg_match_all(".mp3", $text, $matches, PREG_SET_ORDER)) {

  foreach($matches as $match) {
   echo $match[2];
   echo $text;
        }
    }

1 Ответ

2 голосов
/ 18 августа 2010

Еще раз, регулярное выражение чрезвычайно плохо разбирает HTML. Используйте правильный анализатор HTML для удаления информации с веб-страницы.

Например, используйте DOMDocument::loadHTML() для анализа содержимого HTML, затем getElementsByTagName('a'), чтобы получить список ссылок на странице. Для каждой ссылки getAttribute('href'), чтобы увидеть, куда она указывает.

Обратите внимание, однако, что нет абсолютно никакой гарантии, что файлы MP3 будут всегда и только сохраняться под именами файлов, заканчивающимися на .mp3. В Интернете тип ресурса не обязательно должен иметь расширение файла. Единственный способ точно определить, к какому типу файлов относится URL-адрес, - это продолжить и извлечь его (с помощью запроса HTTP GET или HEAD).

...