Функция wp_extract_urls()
в WordPress позволяет извлечь все URL из заданного текста с помощью регулярных выражений. Эта функция полезна, когда необходимо выделить ссылки из текста, HTML-кода или любых других строк, содержащих URL. Стоит отметить, что функция не распознает локальные URL без домена верхнего уровня (TLD), такие как http://localhost
.
wp_extract_urls( string $content ): string[]
Параметры
$content
Тип:string
Обязательный параметр.
Содержит текст или HTML, из которого нужно извлечь URL-адреса.
Возвращаемое значение
string[]
Массив строк, содержащий найденные URL.
Пример 1: Извлечение URL-адресов из текста
В данном примере функция используется для выделения ссылок из обычного текста, содержащего разные типы URL.
$content = 'Посетите сайт по адресу: https://example.com. Также доступен архив на https://downloads.example.com/archive.zip. Вы можете найти нас в соцсетях: http://twitter.com/example.';
$urls = wp_extract_urls( $content );
// Результат:
// Array
// (
// [0] => https://example.com
// [1] => https://downloads.example.com/archive.zip
// [2] => http://twitter.com/example
// )
Пример 2: Извлечение URL-адресов из HTML-кода
Функция позволяет выделить URL из HTML-текста, независимо от того, где находится ссылка (в атрибутах href
, src
и т.д.).
$content = '<p>Добро пожаловать! Подробнее на <a href="https://example.com/info">нашем сайте</a>.</p>
<img src="http://example.com/image.jpg" alt="Example image">
<p>Связаться с нами можно по ссылке <a href="mailto:[email protected]">[email protected]</a>.</p>';
$urls = wp_extract_urls( $content );
// Результат:
// Array
// (
// [0] => https://example.com/info
// [1] => http://example.com/image.jpg
// [2] => mailto:[email protected]
// )
Пример 3: Извлечение ссылок с пропуском локальных URL без домена верхнего уровня
Функция не распознает URL-адреса, которые ведут на локальный сервер без TLD (например, http://localhost
). В этом примере показано, как такой URL-адрес будет пропущен.
$content = '
<a href="http://localhost.com:8080/test">Ссылка с TLD</a>
<a href="http://localhost:8080/test">Локальная ссылка без TLD</a>';
$urls = wp_extract_urls( $content );
// Результат:
// Array
// (
// [0] => http://localhost.com:8080/test
// )
Пример 4: Извлечение URL из текста с несколькими форматами ссылок
Функция также способна извлекать URL-адреса, представленные в разных форматах, включая ссылки на изображения и вложения.
$content = 'Текст со ссылками:
- https://example.com
- <a href="https://media.example.com/files/file.pdf">PDF-файл</a>
- <img src="https://example.com/image.png" alt="Image">';
$urls = wp_extract_urls( $content );
// Результат:
// Array
// (
// [0] => https://example.com
// [1] => https://media.example.com/files/file.pdf
// [2] => https://example.com/image.png
// )
Заключение
Функция wp_extract_urls()
предоставляет удобный способ извлечения URL из текста и HTML-кода. Ее основной ограничением является отсутствие поддержки локальных адресов без TLD, но в большинстве случаев эта функция отлично справляется с задачей.