Регулярные выражения - замена url

У меня в строке $ content много URL:

<a href = "https://domain/wp-content/uploads/2018/07/sample-Wokal-2.jpg"><img class = "alignright size-full wp-image-6608" src = "https://domain/wp-content/uploads/2018/07/sample-Wokal-2.jpg" alt = "sample Wokal 2" width = "933" height = "617" /></a>

<a href = "https://domain/wp-content/uploads/2014/01/sample-lato-123.jpg"><img class = "alignright size-full wp-image-6608" src = "https://domain/uploads/2014/01/sample-lato-123.jpg" alt = "sample lato 123" width = "933" height = "617" /></a>

и т.д

Можно ли заменить все ссылки на: - https: //domain/files/sample-lato-123.jpg, - https: //domain/files/sample-Wokal-2.jpg,

и т.д?

Как это сделать? Я пробовал str_replace - но у меня разные типы ссылок, и я не знаю, как их заменить. Насчет регулярных выражений не знаю :(

Пожалуйста помоги.

Если $content - это просто HTML / XML, преобразуйте его в объект DOM и используйте XPath для нацеливания и изменения ссылок.

MonkeyZeus 05.12.2018 17:07

Я не могу сделать это. Не могли бы вы написать мне, как это сделать?

delifer 05.12.2018 17:08

Нет, я верю в тебя. Прочтите stackoverflow.com/a/1744154/2191572, чтобы начать. Если у вас есть конкретная проблема, вернитесь и попросите о помощи.

MonkeyZeus 05.12.2018 17:09

Вовсе нет, вы должны использовать preg_match: и preg_replace

Shim-Sao 05.12.2018 17:09

Простите мой поддельный ответ, я удалил его. Если вы действительно хотите сопоставить URL-адреса с помощью регулярного выражения, возможно, этот поток может помочь: stackoverflow.com/questions/3809401/…

bkis 05.12.2018 17:18
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
5
34
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать это регулярное выражение, которое выполняет поиск, чтобы убедиться, что строка, которую нужно заменить, действительно является той, которую мы хотим,

(?<=domain).*?(?=sample)

и заменить на

/files/

Вот пример кода PHP,

$str = '<a href = "https://domain/wp-content/uploads/2018/07/sample-Wokal-2.jpg"><img class = "alignright size-full wp-image-6608" src = "https://domain/wp-content/uploads/2018/07/sample-Wokal-2.jpg" alt = "sample Wokal 2" width = "933" height = "617" /></a>\n<a href = "https://domain/wp-content/uploads/2014/01/sample-lato-123.jpg"><img class = "alignright size-full wp-image-6608" src = "https://domain/uploads/2014/01/sample-lato-123.jpg" alt = "sample lato 123" width = "933" height = "617" /></a>';
echo preg_replace('/(?<=domain).*?(?=sample)/', '/files/', $str);

Принты,

<a href = "https://domain/files/sample-Wokal-2.jpg"><img class = "alignright size-full wp-image-6608" src = "https://domain/files/sample-Wokal-2.jpg" alt = "sample Wokal 2" width = "933" height = "617" /></a>\n<a href = "https://domain/files/sample-lato-123.jpg"><img class = "alignright size-full wp-image-6608" src = "https://domain/files/sample-lato-123.jpg" alt = "sample lato 123" width = "933" height = "617" /></a>

Дайте мне знать, если это вам подходит.

Другие вопросы по теме