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

Форум PHP

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

 

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

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

тема: Не работает функция.
 
 автор: lElectroHardl   (11.09.2010 в 17:07)   письмо автору
 
 

<?
function author($text
{
    
$text trim($text);
    
$text preg_replace("/^[^a-zA_Zа-яА-ЯЁё0-9\_\-\s]{1,25}$/"""$text);
    return 
$text;
}

echo 
author("!@#My **&*name is}'?:>{ Author^&*(");

Выводит : !@#My **&*name is}"?:>{ Author^&*(
хотя должно - My name is Author

В чем дело? (тестирую на денвере)

  Ответить  
 
 автор: Slo_Nik   (11.09.2010 в 17:40)   письмо автору
 
   для: lElectroHardl   (11.09.2010 в 17:07)
 

не работает потому, что Вы допустили ошибки, составляя РВ

  Ответить  
 
 автор: lElectroHardl   (11.09.2010 в 17:48)   письмо автору
 
   для: Slo_Nik   (11.09.2010 в 17:40)
 

Какую ошибку?
Проверять всю строку. Все, что не в квадратных скобках - заменить на пустоту...

  Ответить  
 
 автор: Slo_Nik   (11.09.2010 в 17:59)   письмо автору
 
   для: lElectroHardl   (11.09.2010 в 17:48)
 

>Какую ошибку?
а вот эту A_Z...
да и подчёркивание с тире не надо экранировать, и тире поставить в самое начало, для удобства.
уберите "^" и "$" и всё должно работать
а вообще то, я бы попробовал сделать массив запрещённых символов и проверял бы его, если есть такой символ в строке, то замена.
Вот Вы составили РВ, не работает, сразу на форум... а самому посидеть, поковырять разве не интересно?

  Ответить  
 
 автор: lElectroHardl   (11.09.2010 в 18:05)   письмо автору
 
   для: Slo_Nik   (11.09.2010 в 17:59)
 

Спасибо. Помогло.
Только я не пойму, почему следовало убрать "начало" и "конец" строки?

>>а вообще то, я бы попробовал сделать массив запрещённых символов и проверял бы его, если есть такой символ в строке, то замена
Смысл в этом какой?

>>а самому посидеть
3 часа хватит?

  Ответить  
 
 автор: Slo_Nik   (11.09.2010 в 18:17)   письмо автору
 
   для: lElectroHardl   (11.09.2010 в 18:05)
 

>3 часа хватит?
мало, очень мало... даже не простительно мало.

  Ответить  
 
 автор: lElectroHardl   (11.09.2010 в 18:28)   письмо автору
 
   для: Slo_Nik   (11.09.2010 в 18:17)
 

Сарказм? для такой несложной задачи 3 часа - это уже смахивает на отключенный мозг, либо на невнимательность (как у меня).

  Ответить  
 
 автор: nikita2206   (11.09.2010 в 23:07)   письмо автору
 
   для: lElectroHardl   (11.09.2010 в 18:28)
 

Не, он дело говорит. Я сам когда-то, бывало, над чем нибудь таким целый день сидел, ложился спать - и тогда обычно доходило. Если сам будешь додумываться до всего - то хоть будешь все это понимать.

  Ответить  
 
 автор: psychomc   (11.09.2010 в 23:27)   письмо автору
 
   для: Slo_Nik   (11.09.2010 в 17:59)
 

можно еще например упростить, убрав большие буквы из классов символов и поставив регистронезависимый поиск

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

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