Найти все ссылки одним выражением

216
24 июля 2021, 05:00

Как в тексте одним выражением найти все ссылки содержащие ".php" Ссылки могут быть как с href, так и просто в тексте. Кавычки в тексте могут быть одиночными и двойными Пример текста (синтаксис не соблюден):

<script>
var chatUrl = 'cht_data.php';
var sm = "smiles.php"
</script>
<a onclick="showMsg('/car/error_form.php');">Bla</a>
<img src="images/sep.gif">
<iframe src="cht_iframe.php?mode=text"></iframe>
<a href="https://google.com">Google</a>

Сделал так, но думаю можно сделать лучше:

preg_match_all('~\s*([\'"])(.+?)\1\s*~', $string, $match);
foreach($match[2] as $scphp){ 
if(strpos($scphp, '.php') !== false){
echo "$scphp\r\n";
}}

Спасибо.

Answer 1

Регулярное выражение ниже нашел 4 совпадения по тексту из примера. Ссылка будет в первой группе.

preg_match_all("/[\'\"]{1}([^\"\']+\.php\b[^\'\"]*)[\'\"]{1}/i", $string, $match);
Найденные совпадения:
 1. 'cht_data.php'
     1. cht_data.php
 2. "smiles.php"
     1. smiles.php
 3. '/car/error_form.php'
     1. /car/error_form.php
 4. "cht_iframe.php?mode=text"
     1. cht_iframe.php?mode=text

Расшифровка выражения

['"]{1} - Кавычка одинарная или двойная, 1 штука
( - начало группы
[^"']+\.php - последовательность символов, кроме символа кавычки одинарной или двойной и .php следующий после последовательности
\b - граница слова, исключить неожиданное появление .php[a-z]+
[^'"]* - ноль и более любых символов за исключение одинарной и двойной кавычки
) - конец группы
['"]{1} - одинарная или двойная кавычка в количестве 1 штуки.
/i - игнорирование регистра PHP=php и т.д.
READ ALSO
Не работает маршрутизация в Yii2 restfull api

Не работает маршрутизация в Yii2 restfull api

У меня есть проектСоздал папку api, сервер настроил так, что по адресу

128
Как запустить модуль на PHP?

Как запустить модуль на PHP?

Имею модуль для ПХП, при тесте выводит ошибку:

316
из ASCII -&gt; UTF-8

из ASCII -> UTF-8

Проблема какая-то не понятнаиспользую следующий код:

326
Функция уменьшения изображения на PHP

Функция уменьшения изображения на PHP

Нашел в интернете отличную функцию, которая уменьшает изображения, обрезает и тд

124