Не получается написать регулярное выражение, которое заменяло бы все пути с картинками. Код:
preg_replace(
"/[http|\/](.+?)" . basename($content_image) . "/i",
$img_origin,
$result["content"]
);
В коде картинки могут начинаться как с http так и просто со слеша. А так же мне известно название картинки. Но в итоге ничего не заменяется.
Пример строки:
Lorem ipsum dolor <a href="http://site.com/">sit</a> amet. <a href="/uploads/test.jpg"><img src="/uploads/test.jpg" alt=""></a>
Если и этот пример у вас окажется не рабочим, значит вы явно не правильно сформулировали ваш вопрос:
$str = <<<STR
Lorem ipsum dolor <a href="http://site.com/">sit</a> amet. <a href="/uploads/test.jpg"><img src="/uploads/test.jpg" alt=""></a>
STR;
$pcre = '~(?:href|src)="\K[^"]+\.(?:jpg|png|gif)~s';
$repl = 'Значение для замены';
$str = preg_replace($pcre, $repl, $str);
echo $str;
Результат:
Lorem ipsum dolor <a href="http://site.com/">sit</a> amet. <a href="Значение для замены"><img src="Значение для замены" alt=""></a>
При необходимости можно дописать остальные расширения графических файлов в конструкцию (?:jpg|png|gif)
Использую для проверки картинки-ссылки, в одной проверке, вот такую регулярку
$url = preg_match('/([^\s]+(?=.(jpg|jpeg|gif|png)).\2)/', $url);
Пример работы регулярки на JQ
$('.url').each(function(){
let url = $(this).text(),
urlCheck = url.match(/([^\s]+(?=\.(jpg|jpeg|gif|png))\.\2)/g);
$(this).append('<b> - это'+(urlCheck == null ? ' НЕ ' : ' ')+'картинка</b>').find('b').css('color', urlCheck == null ? 'red' : 'green');
});
.url {display: block;}
.url b {font-weight: normal;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<span class="url">http://site.com/image.jpg</span>
<span class="url">http://site.com/image.html</span>
<span class="url">https://site.com/image.jpg</span>
<span class="url">https://site.com/image.html</span>
<span class="url">http://www.site.com/image.jpg</span>
<span class="url">http://www.site.com/image.html</span>
<span class="url">https://www.site.com/image.jpg</span>
<span class="url">https://www.site.com/image.html</span>
<span class="url">www.site.com/image.jpg</span>
<span class="url">www.site.com/image.html</span>
<span class="url">site.com/image.jpg</span>
<span class="url">site.com/image.html</span>
<span class="url">/image.jpg</span>
<span class="url">/image.html</span>
Источник регулярки
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть php скрипт, которому для работы нужны токеныТокены хранятся в отдельной папке в ini файле
Подскажите как при записи в файл не допускать дублирующее значение есть файл
Всем привет! Столкнулся с задачей: реализовать логирование ключевых действийПриложение на Laravel 5