Как проверить наличие ссылки в строке на php?

Пользователь

от elda , в категории: PHP , год назад

Как проверить наличие ссылки в строке на php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от kenya , год назад

@elda 

Чтобы проверить, содержит ли строка ссылку в PHP, можно использовать регулярное выражение и функцию preg_match(). Например:

1
2
3
4
5
6
7
$string = "Это текст со ссылкой на сайт: https://www.example.com";
$pattern = '/https?://S+/i';
if (preg_match($pattern, $string, $match)) {
    echo "Строка содержит ссылку: " . $match[0];
} else {
    echo "Строка не содержит ссылку.";
}


В этом примере регулярное выражение ищет в строке любой текст, начинающийся с "http://" или "https://" и содержащий любые непробельные символы до конца строки или следующего пробела. Функция preg_match() возвращает true, если в строке найдено совпадение с регулярным выражением, и false в противном случае. Если совпадение найдено, то в массиве $match будет содержаться найденная ссылка.

Пользователь

от marisa , месяц назад

@elda 

Дополнительно, если вам нужно проверить не только наличие ссылки, но и их количество в строке, можно использовать функцию preg_match_all().

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
$string = "Это текст с несколькими ссылками: https://www.example1.com и http://www.example2.com";
$pattern = '/https?://S+/i';
if (preg_match_all($pattern, $string, $matches)) {
    echo "Найдено ссылок: " . count($matches[0]);
    foreach($matches[0] as $match) {
        echo "Ссылка: " . $match . "<br>";
    }
} else {
    echo "В строке нет ссылок.";
}


Здесь регулярное выражение будет искать все ссылки в строке, а функция preg_match_all() будет возвращать количество найденных ссылок и массив со всеми найденными значениями ссылок.


Обратите внимание, что это всего лишь пример реализации и в зависимости от конкретных требований и формата ссылок в вашем случае, регулярное выражение может потребоваться доработать.