powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вложенный preg_replace???
6 сообщений из 6, страница 1 из 1
Вложенный preg_replace???
    #33058544
Фотография lissyara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сайт делаю. Пользователь хочет размещать картинки в тексте. Это не проблема:
Код: plaintext
$ret = preg_replace("#\[img\]((http|ftp)://)([^ \?&=\#\"\n\r\t<]*?(\.(jpg|jpeg|gif|png)))\[/img\]#sie", "'<img src=\\1' . str_replace(' ', '%20', '\\3') . '>'", $ret);

Но вот этот пользователь кроме этого хочет чтоб к картинкам был текст
Код: plaintext
alt="наши достижения за последние 40 лет"
......

Есть идея с вложенными preg_replace и тогда он будет впихивать их чем-то вроде
Код: plaintext
[img=наши достижения за последние  40  лет]http://url_site.ru/img_name.png[/img]

Это что надо какой-то вложенный preg_replace делать? А так можно?
...
Рейтинг: 0 / 0
Вложенный preg_replace???
    #33058660
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
Что-то вроде того (остальное наверните сами, здесь только идея)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
$str = '[img=наши достижения за последние 40 лет]http://url_site.ru/img_name.php?var=value[/img]';

echo preg_replace_callback('~\[img      # начало открывающего тэга img
                             (=[^\]]*)? # получили в первом кармашке комментарий, если он есть
                             \]         # конец открывающего тэга img
                             (.*?)      # получили во втором кармашке ссылку
                             \[/img\]   # закрывающий тэг
                            ~xs','make_img',$str);

function make_img($matches){
  $url = parse_url($matches[ 2 ]);
  $uri = $url['scheme'].'://'.$url['host']
                       .'/'.rawurlencode(substr($url['path'], 1 ))
                       .'?'.rawurlencode($url['query']);
  $title = substr($matches[ 1 ], 1 );
  if ($title) return '<img src="'.$uri.'" title="'.htmlspecialchars($title).'">';
  else return '<img src="'.$uri.'">';
}
...
Рейтинг: 0 / 0
Вложенный preg_replace???
    #33058664
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
Кстати, к host'у и scheme тоже надо бы быть повнимательнее, дабы избежать XSS-уязвимостей.
...
Рейтинг: 0 / 0
Вложенный preg_replace???
    #33058692
Фотография lissyara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага. Идею примерно понял. Спасибо.
А вот про
Код: plaintext
Кстати, к host'у и scheme тоже надо бы быть повнимательнее, дабы избежать XSS-уязвимостей.
Непонял :(
Всё будет вводить только хозяин сайта. Я не думаю, что он туда дрянь всякую пихать будет.
Хотя... Кто его знает....
Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Вложенный preg_replace???
    #33058705
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
lissyaraВсё будет вводить только хозяин сайта. Я не думаю, что он туда дрянь всякую пихать будет.Сегодня - хозяин, завтра - любой желающий. Лучше один раз сделать, чтобы потом не вспоминать о том, что "а вот тут у меня будет XSS-уязвимость, если я разрешу всем".
...
Рейтинг: 0 / 0
Вложенный preg_replace???
    #33058712
Фотография lissyara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОК. Ясно.
Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вложенный preg_replace???
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]