Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> регулярное вырожение ... [img][/img]=><img ...>, ПАМАГИТЕ! :) 
:(
    Опции темы
Ищущий!
Дата 22.7.2006, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 19.4.2005

Репутация: нет
Всего: нет



Код

Нужно заменить [img]ссылка[/img] на <img src="ссылка">

написал код 

Код

    do{
        $s="((\[img])([[:alpha:]]{1,}://[^<>[:space:]]+[[:alnum:]/])(\[/img]))";
        $r="<img border=\"0\" src=\"\\3\">";
        $desc = ereg_replace($s,$r,$desc);
    }while(ereg($s,$desc));



и получается, так
если [img]ссылка[/img] то выдает <img src="ссылка"> - то есть все правильно,

но
если [img]ссылка[/img][img]ссылка[/img] то получатеся <img src="ссылка[/img][img]ссылка">

то есь понятно, что регулярное вырожение начинает заменять с краев сходясь к центру.. а как сделать, чтобы регулярное заменяло попорядку....????
 
PM MAIL   Вверх
jzZ
Дата 22.7.2006, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 17.7.2006

Репутация: 1
Всего: 2



Не могу удержаться и не спросить зачем это нужно, понятное дело для форума, но тогда бы я посоветовал, если форум самописный img вообще отключить, т.к. обязательно найдется энтузиаст к-рый раскопают в это уязвимость 
PM MAIL   Вверх
Shark
Дата 22.7.2006, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



Ищущий!, а какая разница?????... 


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
smartov
Дата 22.7.2006, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 7
Всего: 259



Ищущий!, использовал ты бы лучше preg_replace.
Код

$string = '[img]http://www.myimage.ru/image123.jpg[/img]';
$string = preg_replace('/[img](^[)*[\/img]/U', '<img src="$1"></img>', $string);

p.s. может быть неверно. Писал не проверяя. 
PM MAIL   Вверх
Ищущий!
Дата 23.7.2006, 00:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 19.4.2005

Репутация: нет
Всего: нет



Код

    $s="/\[img](.{1,}?)\[\/img]/";
    $r="<img border=\"0\" src=\"\\1\">";
    $desc =preg_replace($s,$r,$desc);


я вот тут такое написал, работает... но ХЗ, что будет в "экстренных" ситуациях smile

Добавлено @ 00:36 
smartov, 


Цитата

Код

$string = '[img]http://www.myimage.ru/image123.jpg[/img]';
$string = preg_replace('/[img](^[)*[\/img]/U', '<img src="$1"></img>', $string);



Скажи, а что значит "U" ??? 
PM MAIL   Вверх
smartov
Дата 23.7.2006, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 7
Всего: 259



Цитата(Ищущий! @  22.7.2006,  23:34 Найти цитируемый пост)
Скажи, а что значит "U" ??? 

Млин, я то скажу, но по хорошему: RTFM! Мануал зачем придумали?

U = UNGREEDY. Нежадный. Именно для того, чтобы похендлать твою ситуацию.
Жаднгый запрос будет брать максимально длинную строку.
Например по твоему регвыру строка
Код

[img]http://www.myimage.ru/image123.jpg[/img][img]http://www.myimage.ru/image456.jpg[/img]

Скушается вся. Короче опять глюки будут. А вот если ты напишешь
Код

$s="/\[img](.{1,}?)\[\/img]/U";

То тогда все будет ок - скушается первое вхождение (один img-/img) а потом второе третье ит.п.   

Это сообщение отредактировал(а) smartov - 23.7.2006, 09:15
PM MAIL   Вверх
Ищущий!
Дата 23.7.2006, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 19.4.2005

Репутация: нет
Всего: нет



smartov, 

да я знаю про жадность smile просто я её знаком "?" убиваю smile а тут буква... хе-хе.. вот и смутился мой наивный рассудок smile

Пасибо в любом случае!!! smile Ура всем!!! 
PM MAIL   Вверх
smartov
Дата 24.7.2006, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 7
Всего: 259



Ищущий!, 
Цитата(Ищущий! @  23.7.2006,  17:59 Найти цитируемый пост)
просто я её знаком "?" убиваю

А. Не заметил вопроса. Тогда все ок. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0601 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.