Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Выражение работает не совсем правильно.
Форумы портала PHP.SU » PHP » Регулярные выражения » Выражение работает не совсем правильно.

Страниц (1): [1]
 

1. kroks - 02 Апреля, 2010 - 20:14:35 - перейти к сообщению
Помогите плз
PHP:
скопировать код в буфер обмена
  1. $we = "/\[logged\](.*)\[else\](.*)\[\/logged\]/siu";
  2. $p="you [logged] login [else] not login[/logged].";
  3. $p=preg_replace($we,"\\1",$p);

Все работает, а вот если написать
PHP:
скопировать код в буфер обмена
  1. $p="you [logged] login
  2. [else] not login[/logged].";

То не работает, я предполагаю что символ перевода строки надо добавить к (.*) или я не прав? я также пытался вместо (.*) написать (.*||(\r\n)*)*, не получилось.
2. Champion - 02 Апреля, 2010 - 20:22:57 - перейти к сообщению
kroks пишет:
символ перевода строки надо добавить к (.*) или я не прав
Прав, но модифиатор s как раз это и делает. Добавь еще модификатор m для многострочного поиска.
3. kroks - 02 Апреля, 2010 - 20:30:23 - перейти к сообщению
спс

 

Powered by ExBB FM 1.0 RC1