Я работаю с редактором, который работает исключительно с внутренними относительными ссылками для файлов, что прекрасно для 99% того, для чего я его использую.
Однако я также использую его для вставки ссылок на файлы в теле письма, а относительные ссылки не сокращают горчицу.
Вместо того, чтобы изменять редактор, я хотел бы найти строку в редакторе и заменить относительные ссылки на внешние ссылки, как показано ниже
Заменить
files/something.pdf
С
https://www.someurl.com/files/something.pdf
Я придумал следующее, но мне интересно, есть ли лучший / более эффективный способ сделать это с помощью PHP
<?php
$string = '<a href="files/something.pdf">A link</a>, some other text, <a href="files/somethingelse.pdf">A different link</a>';
preg_match_all('/<a[^>]+href=([\'"])(?<href>.+?)\1[^>]*>/i', $string, $result);
if (!empty($result)) {
// Found a link.
$baseUrl = 'https://www.someurl.com';
$newUrls = array();
$newString = '';
foreach($result['href'] as $url) {
$newUrls[] = $baseUrl . '/' . $url;
}
$newString = str_replace($result['href'], $newUrls, $string);
echo $newString;
}
?>
Большое спасибо
Lee