За последние 24 часа нас посетил 18401 программист и 1606 роботов. Сейчас ищут 950 программистов ...

preg_replace, preg_match - принцип

Тема в разделе "PHP для новичков", создана пользователем elagin91, 14 янв 2012.

  1. elagin91

    elagin91 Активный пользователь

    С нами с:
    14 ноя 2011
    Сообщения:
    40
    Симпатии:
    0
    Подкиньте ссылку где объясняют принцип preg_replace и preg_match, а то я не понимаю всех тих (.*?), ([0-9]) и тд
     
  2. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Учите регулярные выражения.
     
  3. elagin91

    elagin91 Активный пользователь

    С нами с:
    14 ноя 2011
    Сообщения:
    40
    Симпатии:
    0
    А не совсем всё понял, но как сделать чтобы preg_replace заменял <?if(текст)?> на "; if(тот же текст){ echo "

    Я попробовал код preg_replace("<\?if\((.*?)\)\?>","\"; if(\\1){ echo \"",$text);

    Но иногда сервер заменяет <?if($USER=4)?>условие 1<?endif?> <?if($USER=1)?>условие 2<?endif?>
    на
    "; if($USER=4)?>условие 1<?endif?> <?if($USER=1){ echo "условие 2<?endif?>

    т.е. хватает первый "<?if("
    пропускает первый ")?>"
    и идет до второго ")?>"
     
  4. elagin91

    elagin91 Активный пользователь

    С нами с:
    14 ноя 2011
    Сообщения:
    40
    Симпатии:
    0
    Как сделать в preg_replace так чтобы был не любой текст, а любой кроме знака вопроса (?)
    заменить <?тут любой текст и символы кроме знака вопроса?>
    preg_replace("<\?(.*?)\?>","заменил)",$text);
    только вместо (.*?) что написать ?
     
  5. elagin91

    elagin91 Активный пользователь

    С нами с:
    14 ноя 2011
    Сообщения:
    40
    Симпатии:
    0
    Я задаю слишком глупый, вопрос или наоборот на него никто не знает ответа?
     
  6. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
  7. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Это происходит где? Ты где ищешь "<? ?>" ?
    (.*?) с на---> (.+?)
    попробуй:
    preg_replace('#<?(.+?)?>#ies','(замена)',$text);
     
  8. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7