Поднимаю тему, пытаюсь переделать под 7
public function highlight_images($var) {
$var = preg_replace('#\[img=([0-9]+)_([0-9]{3})\]#isU', "$1_$2", $var);
$file = $_SERVER['DOCUMENT_ROOT'] . '/files/images/' . $var . '_preview.jpg';
if(file_exists($file))
$image = '<a href="/files/images/' . $var . '.jpg"><img src="/files/images/' . $var . '_preview.jpg" alt="+" /></a>';
else
$image = '[Изображение удалено]';
return $image;
}
Код работает, но все сообщение кроме тега [img=] выдает [Изображение удалено], что пропустил?
# Nurdaulet (24.05.2017 / 12:36)
Поднимаю тему, пытаюсь переделать под 7
public function highlight_images($var) {
$var = preg_replace('#\[img=([0-9]+)_([0-9]{3})\]#isU', "$1_$2", $var);
$file = $_SERVER['DOCUME
Я не уверен точно, что именно в этом причина, но первое, что бросается в глаза, это ссылки на подмаски:
"$1_$2"
Попробуй их записать так:
'$1_$2'
Добавлено: 24.05.2017 / 20:19
Nurdaulet, Позже зайду с пк, посмотрю твою регулярку.
Добавлено: 24.05.2017 / 20:49
Ничего не понял, что ты пытаешься найти с помощью регулярки (
совпадение с чем? и как должен выглядеть bb-код твоего img тега... ) ... Но может быть этот пример тебе поможет понять, куда рыть
$str = 'Текст и картинка: [img]http://johncms.com/images/logo.gif[/img]';
$patt = '~\[img](.+)\[/img]~';
$repl = '<img src="$1" alt="*" />';
echo preg_replace($patt, $repl, $str);
ДоХтор, примерно так [img=1234567_123]
# Koenig (24.05.2017 / 20:53)
ДоХтор, примерно так [img=1234567_123]
То есть, поиск только цифр (
ну подчёркивание _ итак видно, гг) и
без парного
(закрывающего) тега [/img] ?
ДоХтор, ну это я с регулярки взял )
# Koenig (24.05.2017 / 21:08)
ДоХтор, ну это я с регулярки взял )
Как-то у него не правильно всё организовано. Я так понял, он хочет выдернуть из строки имя картинки, потом это имя подставить в ссылку для проверки на сервере её наличия, и потом уже подставить это имя в html-тег -- если это так, то ему нужно preg_match() использовать для этого, т.к. preg_replace() будет возвращать вместе с именем файла и всю остальную строку.
Nurdaulet, попробуй этот вариант (
ссылки при необходимости подправишь сам)
public function highlight_images($var) {
$img = preg_match('~\[img=(\d+_\d{3})]~', $var, $arr) ? $arr[1] : '';
$file = $_SERVER['DOCUMENT_ROOT'] .'/files/images/'. $img .'_preview.jpg';
if (file_exists($file)) {
$image = '<a href="/files/images/'.
$img .'.jpg"><img src="/files/images/'.
$img .'_preview.jpg" alt="+" /></a>';
} else {
$image = '[Изображение удалено]';
}
return $image;
}
# ДоХтор (24.05.2017 / 21:30)
Nurdaulet, попробуй этот вариант (ссылки при необходимости подправишь сам)public function highlight_images($var) {
$img = preg_match('~\[img=(\d+_\d{3})]~', $var, $arr) ? $arr[1] : '';
$fil
Тег работает, но все же без изменении