Регулярное выражения добавит строку

249
16 октября 2017, 00:21

Помогите добавить строку, например есть атрибут:

data-original="https://img.alicdn.com/imgextra/i3/1857444359/TB2j9N5aEafF1Jjy1XbXXaYiXXa_!!1857444359.jpg"

как добавить в конце ссылки эту строку: _100x100.jpg что бы получилось как то так:

data-original="https://img.alicdn.com/imgextra/i3/1857444359/TB2j9N5aEafF1Jjy1XbXXaYiXXa_!!1857444359.jpg_100x100.jpg"

вот так я могу получить:

$re = '/data-original=.+.jpg/';
$str = 'data-original="https://img.alicdn.com/imgextra/i3/1857444359/TB2j9N5aEafF1Jjy1XbXXaYiXXa_!!1857444359.jpg"';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
var_dump($matches);

но мне наоборот добавить после .jpg

Answer 1

Проверяйте позицию, в которой строка заканчивается кавычкой, и производите замену в этой позиции, с последующей подстановкой последнего символа в этой строке. Звучит запутано, поэтому публикую пример:

$string = 'data-original="https://img.alicdn.com/imgextra/i3/1857444359/TB2j9N5aEafF1Jjy1XbXXaYiXXa_!!1857444359.jpg"';
echo preg_replace('~(")$~', '_100x100.jpg$1', $string);

Результат :

data-original="https://img.alicdn.com/imgextra/i3/1857444359/TB2j9N5aEafF1Jjy1XbXXaYiXXa_!!1857444359.jpg_100x100.jpg"
Answer 2

Вот как то так у меня получилось =)

$string = 'data-original="https://img.alicdn.com/imgextra/i3/1857444359/TB2j9N5aEafF1Jjy1XbXXaYiXXa_!!1857444359.jpg"';
echo preg_replace('/.jpg/', '.jpg_320x320.jpg', $string);
READ ALSO
Сгруппировать массив

Сгруппировать массив

Есть массив такого вида

323
Перенос строки textarea

Перенос строки textarea

Проблема, в том, что при выводе текста в простой блок из БД, он отображается с переносами, как и задумано, а если вывести этот текст в textarea, то будет...

260
Сайт для фотоотчетов

Сайт для фотоотчетов

Как можно реализовать хранение и загрузку фотографий на сайт с возможностью скачиванияСайт делается на Drupal 8

209