За последние 24 часа нас посетили 20253 программиста и 1562 робота. Сейчас ищут 1853 программиста ...

Не работают регулярные выражения

Тема в разделе "Регулярные выражения", создана пользователем MIV, 28 ноя 2010.

  1. MIV

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

    С нами с:
    28 ноя 2010
    Сообщения:
    7
    Симпатии:
    0
    Помогите не могу понять, делал скрипт в денвере и все прекрасно работало, залил и все.
    Правда разные версии пшп, в денвере 5.3.1 а на хосте 5.2.13.
    ошибку выдает такую:
    Код (Text):
    1. [28-Nov-2010 11:36:56] PHP Warning:  preg_match_all() [<a href='function.preg-match-all'>function.preg-match-all</a>]: Unknown modifier 'a' in /home/esquilin/public_html/pars/index.php on line 49
    регулярный посылаю такой:
    Код (Text):
    1. /<p>(.*)<br>\r\n<a href=\"(.*)\">(.*)<\/a><\/p>/isU
    Не могу понять, что ли настолько разные регулярки в версиях 5.3 и 5.2

    Помогите заставить работать скрипт.
     
  2. <?=RPG?>

    <?=RPG?> Активный пользователь

    С нами с:
    19 ноя 2010
    Сообщения:
    451
    Симпатии:
    0
    Явно тут ошибка, но само выражение верное. Как именно регвыр посылаете на сервак? Может magick quotes вам своё фи показывают.
     
  3. kombain

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

    С нами с:
    28 авг 2010
    Сообщения:
    50
    Симпатии:
    0
    а) Заключай регулярное выражение в одинарные кавычки '
    б) в качестве ограничителей используй символ решетки #
     
  4. MIV

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

    С нами с:
    28 ноя 2010
    Сообщения:
    7
    Симпатии:
    0
    Действительно проблема была во включенном magic_quotes_qpc

    Использовал для решения проблемы вставку в пшп скрипт:
    Код (Text):
    1. function my_stripSlashes($param)
    2. {
    3.     if (! is_array($param)) {
    4.         return stripslashes($param);
    5.     }
    6.     foreach ($param as $k => $v) {
    7.         $param[$k] = my_stripSlashes($v);
    8.     }
    9.     return $param;
    10. }
    11. if (get_magic_quotes_gpc()) {
    12.     $_GET    = my_stripSlashes($_GET);
    13.     $_POST   = my_stripSlashes($_POST);
    14.     $_COOKIE = my_stripSlashes($_COOKIE);
    15. }
    Хотел знать какие еще есть моменты обхода этого, без правки php.ini?
     
  5. <?=RPG?>

    <?=RPG?> Активный пользователь

    С нами с:
    19 ноя 2010
    Сообщения:
    451
    Симпатии:
    0
    Если сервер позволяет выполнить ini_set — можно отключить эти магические кавычки. Иначе придется обрабатывать строчку функцией stripslashes.
     
  6. kombain

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

    С нами с:
    28 авг 2010
    Сообщения:
    50
    Симпатии:
    0
    в файле htaccess можно записать
    php_value magic_quotes_gpc off