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

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

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

 

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

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

тема: Непонятная регулярка
 
 автор: demonow   (04.04.2012 в 12:18)   письмо автору
 
 

Вычитал в книге маленький пример того, как перевести в верхний регистр все теги в строке.
$str=preg_replace(
'{ (</?) (\w+) (.*?>) }es'
"'$1.strtoupper('$2').'$3''",
$str
);
В регулярке, не понял почему выражение начинается с (</?), что оно вообще тут значит?

  Ответить  
 
 автор: cheops   (04.04.2012 в 12:25)   письмо автору
 
   для: demonow   (04.04.2012 в 12:18)
 

Судя по всему идет работа с угловыми скобками - они там в исходном преобразуемом тексте никак не представлены?

  Ответить  
 
 автор: Sfinks   (04.04.2012 в 13:11)   письмо автору
 
   для: demonow   (04.04.2012 в 12:18)
 

Что за книжка такая? Этот пример работать не будет. Для обработки найденного текста внешними функциями необходимо использовать preg_replace_callback().

По регулярке:
</? обозначает: < либо </
взято в скобки потому что при замене идет ссылка на эти символы: $1
Все пробелы в этом РВ лишние. Ни одного тега оно не найдет.

  Ответить  
 
 автор: demonow   (04.04.2012 в 16:47)   письмо автору
 
   для: Sfinks   (04.04.2012 в 13:11)
 

Книжка правильная, там потом говориться что так делать нельзя, но меня интересует другой вопрос, описаный выше, и с вашего ответа стало понятно,спасибо.

  Ответить  
 
 автор: Sfinks   (04.04.2012 в 17:54)   письмо автору
 
   для: demonow   (04.04.2012 в 16:47)
 

Мне всегда нравится когда в книжках что-то пишут.... Особенно листов 5 пишут.... Ты читаешь, вникаешь, разбираешься..... А они потом: - Это не правильно. Мы так делать не будем. Запомните что так не надо делать )))))))

  Ответить  
 
 автор: demonow   (04.04.2012 в 20:35)   письмо автору
 
   для: Sfinks   (04.04.2012 в 17:54)
 

Да, есть такое, может это подкол автора?)))
Кстате книга Котерова.

  Ответить  
 
 автор: Sfinks   (04.04.2012 в 21:48)   письмо автору
 
   для: demonow   (04.04.2012 в 20:35)
 

Это похоже у всех есть в большей или меньшей степени ) И у cheops'а есть ) Щас его "ООП на ПХП" читаю. Спасибо ПХП более-менее знаю и в код вникать не приходится и читаю почти по диагонали, а так тоже встречается ) Типа читаешь код, переворачиваешь страницу, а там: "Это классический пример как не надо делать" )))))

  Ответить  
 
 автор: cheops   (04.04.2012 в 22:21)   письмо автору
 
   для: Sfinks   (04.04.2012 в 21:48)
 

>>"Это классический пример как не надо делать"
Ну да, бывает и хуже, напишешь код, а потом понимаешь, что нужно было либо его не вставлять, либо писать такую фразу... :))) Мозги при чтении книг отключать не рекомендуется :))) Множества замечательных книг, в том числе и моего авторства вы никогда не увидите, потому что авторы в них все вылизывают до тех пор, когда книгу уже печатать смысла нет :(.

  Ответить  
 
 автор: Sfinks   (04.04.2012 в 22:51)   письмо автору
 
   для: cheops   (04.04.2012 в 22:21)
 

> Множества замечательных книг, в том числе и моего авторства вы никогда не увидите
(((((

Кстати, раз уж зашла речь про Вашу книгу, не буду тему создавать.
Хотя это уже может и не актуально. Тем не менее там ошибка. В конце главы 3, стр.132 "Замечание" и далее все что его касается.
$s = array(1,2,3,4,5,);
не содержит ошибки и прекрасно работает. Не обязательно удалять последнюю запятую.

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

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