Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: использование тегов для действий [code][/code
 
 автор: kvins   (17.03.2011 в 13:00)   письмо автору
 
 

как накладываются на эти теги всякие действия ,

как на этом сайте [code][/cod] [b][/b] и с помощью чего,

  Ответить  
 
 автор: cheops   (17.03.2011 в 13:11)   письмо автору
 
   для: kvins   (17.03.2011 в 13:00)
 

Можно использовать регулярные выражения, т.е. что-то вроде
<?php
    $postbody 
preg_replace("#\[b\](.+)\[\/b\]#isU",'<b>\\1</b>',$postbody);
?>

  Ответить  
 
 автор: kvins   (17.03.2011 в 14:02)   письмо автору
 
   для: cheops   (17.03.2011 в 13:11)
 

как я понял первая часть это настойки ,а вторая то что надо подставить
то есть после каждой настройки надо ставить \
и еще ставить \ чтоб экранировать /
а что значит # и
(.+) (думаю что для текста , но не очень понятно как он работает почему точка с плюсом)

  Ответить  
 
 автор: cheops   (17.03.2011 в 14:09)   письмо автору
 
   для: kvins   (17.03.2011 в 14:02)
 

>как я понял первая часть это настойки ,а вторая то что надо подставить
Да, первая часть называется - регулярным выражением, она ищет соответствие.

>то есть после каждой настройки надо ставить \
Обратный слеш тут выполняет экранирующую роль, дело в том, что регулярные выражения, это такой специализированный язык программирования - в нем очень много спец-символов, чтобы отменить их специальное значение или наоборот обычному символу назначить специальное значение, используется \. Его использование зависит от тех правил, которые вы программируете и от синтаксиса регулярных выаржений.

> и еще ставить \ чтоб экранировать /
Тут это избыточно, можно не экранировать, когда вы в качестве границы регулярного выражения не используете /

> а что значит # и
Это граница регулярного выражения, она может быть любой в том числе и /

>(.+) (думаю что для текста , но не очень понятно как он работает )
Да, это для текста, точка означает любой произвольный символ, + - означает повторение предыдущего символа один или более раз.

>[shrift] [/shrift] мне нужно указать на класс в css <p class="shrift"> </p> хочу чтоб при вставки
>какого нить тега у мя выводился со шрифтом который я оставил в стилях
Можно поступить так
<?php
<?php 
  $pattern 
"#\[shrift\](.+)\[\/shrift\]#isU";
  
$replace '<p class='shrift'>\\1</p>';
  
$postbody preg_replace($pattern$replace$postbody); 
?>?>

  Ответить  
 
 автор: kvins   (17.03.2011 в 14:27)   письмо автору
 
   для: cheops   (17.03.2011 в 14:09)
 

получается в конце тоже граница # а почему всегда в конце пишется isU

<p class='shrift'>\\1</p> 1 ставится чтоб скрипт выполнялся только если там есть хоть 1 символ а 2 слеша для чего?
думаю 1 слеш ставиться из за #\ а вотрой так и не понял

спс остальное все понятно как выберу красивые шрифты , так сразу это применю =)

  Ответить  
 
 автор: cheops   (17.03.2011 в 14:52)   письмо автору
 
   для: kvins   (17.03.2011 в 14:27)
 

>получается в конце тоже граница #
На то они и границы, чтобы ограничивать регулярное выражение со всех сторон.

>а почему всегда в конце пишется isU
Не всегда, в данном случае. Это модификаторы, которые выносятся за границы регулярного выражения. i - сообщает, что регулярное выражение не должно зависить от регистра, s - что поиск должен вестись в пределах всех строк, а не только одной, U - инвертирует жадность регулярного выражения, заставляя искать его минимальное, а не максимальное соответствие.

  Ответить  
 
 автор: heed   (19.03.2011 в 02:19)   письмо автору
 
   для: kvins   (17.03.2011 в 14:27)
 

bbcode

http://softtime.ru/group/id_group=3

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования