Помогите с preg_replace

Тема в разделе "PHP", создана пользователем Lexx59, 28 ноя 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Lexx59

    Lexx59

    Регистр.:
    9 янв 2009
    Сообщения:
    179
    Симпатии:
    38
    Помогите разобраться.
    Почему-то код
    Код:
    for ($i=0; $i<100; $i++){
    	if (!strstr($myshab, "[RANDKEYWORD]")) break 1;
    	$myshab=preg_replace("/\[RANDKEYWORD\]/", GetRandKeyword(), $myshab, 1);
    }
    
    работает. И в шаблоне в нужном месте делает подстановку.
    Однако, если в том же шаблоне вставить [RANDKEYWORD2]
    и изменить код на
    Код:
    for ($i=0; $i<100; $i++){
    	if (!strstr($myshab, "[RANDKEYWORD2]")) break 1;
    	$myshab=preg_replace("/\[RANDKEYWORD2\]/", GetRandKeyword(), $myshab, 1);
    }
    то он ничего не меняет :(
    Где стоит искать проблему?
     
  2. Kirillik

    Kirillik Создатель

    Регистр.:
    22 фев 2009
    Сообщения:
    32
    Симпатии:
    7
    Странно, у меня твой код нормально отрабатывает.
    Какая версия PHP у тебя?

    Попробуй у себя прогнать код:
    PHP:
    $myshab "Foo [RANDKEYWORD2] Bar";
    if (!
    strstr($myshab"[RANDKEYWORD2]")) die("not found");
    $myshab preg_replace("/\[RANDKEYWORD2\]/""GOOD"$myshab1);
    echo 
    $myshab;
     
  3. Lexx59

    Lexx59

    Регистр.:
    9 янв 2009
    Сообщения:
    179
    Симпатии:
    38
    Хм.
    "Foo GOOD Bar"

    PHP Version 4.4.9
     
  4. Kirillik

    Kirillik Создатель

    Регистр.:
    22 фев 2009
    Сообщения:
    32
    Симпатии:
    7
    Ну значит у тебя все нормально в этом участке кода, ищи ошибку где-то выше

    Кстати, PHP 4-й может такие казусы выдавать, поставь лучше PHP 5 (обратись в техподдержку к прову)
     
  5. Lexx59

    Lexx59

    Регистр.:
    9 янв 2009
    Сообщения:
    179
    Симпатии:
    38
    такое ощущение, что функции из файла "functions.php" где-то закешировались %)
     
Статус темы:
Закрыта.