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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Рег. Выражение для [img] 
:(
    Опции темы
DissDoc
Дата 9.10.2006, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Проблема вот в чем, никак не могу разобраться с регулярными выражениями полностью. Встала проблема перевести строку из [img='test.jpg'] в строку <img src='test.jpg'>.  smile 
PM MAIL WWW   Вверх
skyboy
Дата 9.10.2006, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


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

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



и? что у тебя не работает? где код? если кода не даешь - иди в поиск. подобное тут каждый четверг поднимается.
PM MAIL   Вверх
DissDoc
Дата 9.10.2006, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Все, сделал!
Код

echo preg_replace('/\[img=(.*)\]/U', '<img src=$1>', "[img='test.gif']"); 

вроде работает! НО )))
Я сделал с трудом, методом сокражения сложных рег выражений. Поэтому встает вопрос, что такое "$1"?
А также "U", и вообще я очень все смутно понимаю, если не трудно можно всю строку объяснить )))
Ну или хотя даль грамотный линк? А то, все что я нахожу в инете - друг у друга содрано и толком нет ничего! Просто сказано, что в рег. выражениях "есть еще и классы. Но мы их разбирать не будем" )
PM MAIL WWW   Вверх
skyboy
Дата 9.10.2006, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


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

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



$1 - это первая найденная группа. Группа - это то, что в регулярке находится внутри скобок. В данном случае это (.*). ".*" - это означает любой символ(".") любое количество раз("*"). А "U" - определение "жадности", чтоб в строке "[img='test.jpg']" символ "]" не "влез" в те самые ".*". Т.е. без модификатора "U" в $1 было бы не 'test.jpg', a "'test.jpg']". 
символы "[" и  "]" записаны с предшевствующим "\", чтоб эти символы не опознавались как управляющие(определяющие набор символов).
Цитата(DissDoc @  9.10.2006,  09:58 Найти цитируемый пост)
Ну или хотя даль грамотный линк? 

php.net
и
php.ru
PM MAIL   Вверх
DissDoc
Дата 9.10.2006, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Спасибо огромное, очень помогло твое объяснение =) Я хоть более-менее начал вникать.
И за ссылки спасибо. Честное слово не знал  smile (как бы это смешно не звучало)
PM MAIL WWW   Вверх
skyboy
Дата 9.10.2006, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


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

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



ничего. только в следующий раз как будешь обращаться - сразу выкладывай код.
Во-первых, проще сказать "в такой-то строке неверно установлено то-то и то-то", нежели набивать код самому целиком. 
Во-вторых, видно, что ты тоже стремился к разрешению проблемы, а не просто хочешь, чтоб за тебя её решили.
Так что - велкам smile
PM MAIL   Вверх
OverClocker
Дата 22.10.2006, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

 echo preg_replace('/\[img=(.*)\]/U', '<img src=$1>', "[img='test.gif']");  

skyboy, большое спасибо за исчерпывающий ответ. НО вот только мне не совсем понятно, зачем слэш ( / ) перед [img= ?
PM MAIL WWW   Вверх
Mal Hack
Дата 22.10.2006, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



[ - служебный символ паттерна, означающий начала класса. Чтобы паттерн его воспринимал, как символ "[" мы его экранируем.
PM ICQ   Вверх
OverClocker
Дата 22.10.2006, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Mal Hack,  это то я понял. \[ будет восприниматься просто, как символ [ Мне не понятно, что за обратный слэш перед всей этой конструкцией / и всё это выглядит /\[img...
PM MAIL WWW   Вверх
SelenIT
Дата 22.10.2006, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

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



OverClocker, это ограничитель (он же delimeter). Второй такой же (закрывающий) - в конце выражения, но перед модификаторами (в данном случае перед U).


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
OverClocker
Дата 22.10.2006, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



SelenIT, а! Теперь ясно! Спасибо  smile 
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




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


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

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