|
|
|
| Как-то раз я тут спрашивал как заменить [IMG]тратата[/IMG] на <img src="тратата">
Получил ответ
$patern = "#\[img\][\s]*([\S]*)[\s]*\[\/img\]#si";
$replacment = "<img border=0 src='\\1'>";
$mes = preg_replace($patern,$replacment,$mes);
|
вот теперь хотелось бы понять эту замену
подскажите что конкретно значит каждый из символов в переменной pattern | |
|
|
|
|
|
|
|
для: 1999
(27.02.2006 в 19:14)
| | хмм... я бы иначен написал выражение:
$patern = "#\[img\](.*)\.(png|gif|jpeg|jpg)\[\/img\]#Usi";
$replacment = "<img border=0 src='\\1.\\2'>";
|
| |
|
|
|
|
|
|
|
для: 1999
(27.02.2006 в 19:14)
| | кхм... расскажите плиз... | |
|
|
|
|
автор: яяя (04.03.2006 в 18:51) |
|
|
для: 1999
(28.02.2006 в 18:23)
| | ага расскажите пожалута | |
|
|
|
|
|
|
|
для: 1999
(27.02.2006 в 19:14)
| | Хм... что-то не заметил ваш вопрос... Всё что заключено в квадратные скобки обозначает один символ, например [\s] - один пробельный символ, а [\S] - один не пробельный символ. К классу пробельных символов относятся все невидимые символы вроде пробелов, переводов строк, возврата каретки, табуляции и т.п. Символ * - называется квантификатором и означает, что символ перед ним может появляться любое число раз, в том числе и 0. Т.е. [\s]* - означает любое число пробельных символов, а [\S]* - любое число непробельных символов.
Для того, чтобы использоваться спец-символы в их исходном значении, например, квадратные скобки - их следует экранировать обратным слешем \[ и \].
Круглые скобки используются для группировки символов, а также для выделения частей в регулярном выражении - они нумеруются от 1 до 100. Так потом во втором аргументе функции preg_replace() можно обращаться к первым круглым скобкам как к \\1, ко вторым \\2 и т.д. | |
|
|
|
|
|
|
|
для: cheops
(05.03.2006 в 13:30)
| | спасибо а что такое #si??? | |
|
|
|
|
|
|
|
для: 1999
(06.03.2006 в 18:47)
| | # - это граница регулярного выражения, вместо неё можно использовать любой другой символ, например, |
"|\[img\][\s]*([\S]*)[\s]*\[\/img\]|si";
|
Границы обозначают начало и конец регулярного выражения, после последней границы могут указываться модификаторы, так i, например, сообщает, что регулярное выражение не должно зависеть от регистра, а s сообщает, что входной текст может содержать переводы строки и искать нужно по всему тексту, а не до первого перевода строки. | |
|
|
|