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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Помогите разобраться с функцией preg_replace

Сообщения:  [1-10]   [11-15] 

 
 автор: OZ_   (15.08.2005 в 18:28)   письмо автору
 
   для: broker   (28.03.2005 в 23:49)
 


function textonly($str,$len)
{
        $str=trim($str);
          $str=preg_replace("|[^\w_\@\.\-]+|","",$str);
         if ($len>0) $str=substr($str,0,$len);
        return $str;
}

   
 
 автор: broker   (28.03.2005 в 23:49)   письмо автору
 
   для: XPraptor   (26.03.2005 в 12:01)
 

Может кто нибуд знает другой способ , какие нибуд предложение?

   
 
 автор: broker   (28.03.2005 в 00:26)   письмо автору
 
   для: cheops   (27.03.2005 в 17:52)
 

Первый вариант уже пробовал:

<?php
    $string 
preg_replace("/\003(\d+),(\d+)/e"$this->cng_color(\\1,\\2), $string);
    
$string preg_replace("/\003(\d+)/e"$this->cng_color(\\1,-1), $string);
?>

тоже дает ошибку:

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in C:\server\htdocs\base.php on line 205
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in C:\server\htdocs\base.php on line 205
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in C:\server\htdocs\base.php on line 205
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in C:\server\htdocs\base.php on line 205
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in C:\server\htdocs\base.php on line 206
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in C:\server\htdocs\base.php on line 206
Parse error: syntax error, unexpected '<' in C:\server\htdocs\base.php(205) : regexp code on line 1
Fatal error: preg_replace() [function.preg-replace]: Failed evaluating code: <font style='color: #000000; background-color: #000080;'> in C:\server\htdocs\base.php on line 205

А с ковычками дает преждную ошибку

Parse error: syntax error, unexpected ',' in C:\server\htdocs\base.php(205) : regexp code on line 1 
Fatal error: preg_replace() [function.preg-replace]: Failed evaluating code: (12,10) in C:\server\htdocs\base.php on line 205 

А в обычном программе скрипт работает и ковычками и без них:
<?php
function color_set($string) {
    
$string preg_replace("/\003(\d+),(\d+)/e""cng_color($1,$2)"$string);
    
$string preg_replace("/\003(\d+)/e""cng_color($1,-1)"$string);
    for (
$a 0$a<substr_count($string"<font"); $a++) {    $string .= "</font>"; }
    return 
$string;
?>

   
 
 автор: cheops   (27.03.2005 в 17:52)   письмо автору
 
   для: broker   (27.03.2005 в 13:49)
 

Ну там как бы немного по другому... Попробуйте либо так
<?php 
$string 
preg_replace("/\003(\d+),(\d+)/e""$this->cng_color(\\1,\\2)"$string); 
?>

Либо так
<?php 
$string 
preg_replace("/\003(\d+),(\d+)/e""$this->cng_color(\$1,\$2)"$string); 
?>

   
 
 автор: broker   (27.03.2005 в 13:49)   письмо автору
 
   для: cheops   (27.03.2005 в 13:25)
 

Конечно нет эти стандартные переменные (только они используются в двух вариантах)
Об этом тут написано http://www.softtime.ru/dic/id_dic=140&id_group=3

   
 
 автор: cheops   (27.03.2005 в 13:25)   письмо автору
 
   для: broker   (27.03.2005 в 00:17)
 

А нельзя их переименовать?

   
 
 автор: broker   (27.03.2005 в 00:17)   письмо автору
 
   для: cheops   (26.03.2005 в 21:02)
 

Эти переменные найденные переменные по указанном форме ( она у меня работает в обычном программе а в классе дает ошибку)

   
 
 автор: cheops   (26.03.2005 в 21:02)   письмо автору
 
   для: broker   (26.03.2005 в 18:25)
 

Погодите... а почему переменные называются $1 и $2? Так же нельзя называть переменные...

   
 
 автор: broker   (26.03.2005 в 18:25)   письмо автору
 
   для: cheops   (25.03.2005 в 22:06)
 

Я уже пробовал дает такую ошибку:

Parse error: syntax error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in C:\server\htdocs\base.php on line 205

Думаю тут он не принимает $this->cng_color();

   
 
 автор: XPraptor   (26.03.2005 в 12:01)   письмо автору
 
   для: broker   (25.03.2005 в 18:14)
 

Я только что положил пример использования preg_replace в теме Как ограничить str_replace. Если тебе не нужно использывать ждя замены регулярные выражения, а просто слова, то достаточно ограничить то слово которое меняем бакслэшами "/это меняем/" на "это".

   

Сообщения:  [1-10]   [11-15] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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