Я пытаюсь прочитать файл HTML и захватить все теги привязки, которые соответствуют определенному шаблону URL, чтобы отображать эти ссылки на другой странице. Образец выглядит так:Соответствующий шаблон URL с PHP
https://docs.google.com/file/d/aBunchOfLettersAndNumbers/edit?usp=drive_web
Я отвратительный с RegEx. Я пробовал кучу вещей и прочитал кучу ответов здесь, в Stack Overflow, но я не нахожусь в правильном синтаксисе.
Вот что я сейчас:
preg_match ('/<a href="https:\/\/docs.google.com\/file\/d\/(.*)<\/a>/', $file, $matches)
Когда я проверить это на HTML страницу с двумя тегами соответствия якорей, первый результат включает в себя первый и второй матч, и все между ними, в то время как второй результат включает в себя часть первого матча, часть второго матча и все между ними.
Хотя я был бы рад захватить соответствующие теги привязки вместе с внутренним HTML, я был бы еще счастливее, если бы мог создать многомерный массив с атрибутом HREF каждого соответствующего тега привязки, а также соответствующий внутренний HTML-код (поэтому я могу самостоятельно форматировать ссылки, не используя еще больше RegEx, чтобы избавиться от нежелательных атрибутов). Могу ли я использовать preg_match_all для этого? Как это будет выглядеть?
Я даже на правильном пути здесь, или я должен использовать запросы DOM и XPath, чтобы найти этот материал?
Спасибо.
Вы должны полностью использовать DOM для этого. – Jon
Regexes - это не волшебная палочка, которую вы можете волновать при каждой проблеме, которая связана со строками. Анализ HTML с регулярными выражениями приводит только к душевной боли и боли. –