- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/lib/V2/Entity/Url/UrlItem.php
- Класс: BitrixImV2EntityUrlUrlItem
- Вызов: UrlItem::getUrlsFromText
static function getUrlsFromText(?string $text): array
{
if ($text === null)
{
return [];
}
$textParser = static::getTextParser();
$text = $textParser->convertText($text);
$text = preg_replace('/-{54}.+?-{54}/s'.BX_UTF_PCRE_MODIFIER, "", $text);
$text = preg_replace('/[CODE](.*?)[/CODE]/si'.BX_UTF_PCRE_MODIFIER, "", $text);
preg_replace_callback(
'/^(>>(.*)(n)?)/mi'.BX_UTF_PCRE_MODIFIER,
static fn() => " XXX",
$text
);
$result = [];
preg_replace_callback(
'/[url(=(?P[^]]+))?](?P.*?)[/url]/i'.BX_UTF_PCRE_MODIFIER,
static function (array $matches) use (&$result) {
$link = !empty($matches['URL'])? $matches['URL']: $matches['TEXT'];
if (!empty($link))
{
$link = static::normalizeUrl($link);
if (static::isUrlValid($link))
{
$result[] = $link;
}
}
},
$text
);
return $result;
}