За последние 24 часа нас посетили 20039 программистов и 1594 робота. Сейчас ищут 1807 программистов ...

удаление части текста до определенного места

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

  1. Amperandus

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

    С нами с:
    13 мар 2009
    Сообщения:
    226
    Симпатии:
    11
    Есть спарсенный текст содержащий в себе строку:
    Есть код для отрезания части текста перед строкой:
    PHP:
    1. <?php
    2. $result = preg_replace('/.*?itemTable/','',$info);
    3. ?>
    В итоге получаю по прежнему не обработанный текст.

    Если взять небольшую строку, например:
    там код работает отлично.

    В чем может быть загвоздка?
     
  2. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Кодировка спарсенного текста какая?
     
  3. Amperandus

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

    С нами с:
    13 мар 2009
    Сообщения:
    226
    Симпатии:
    11
    windows-1251
     
  4. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    у меня работает:
    PHP:
    1.  
    2. <?php
    3. $info="<table class='itemTable center' id=vendors onmouseover='initTable(this,event)'>";
    4.  $result = preg_replace('/.*?itemTable/','',$info);
    5.  echo $result;
     
  5. Amperandus

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

    С нами с:
    13 мар 2009
    Сообщения:
    226
    Симпатии:
    11
    так тоже работает, а вот целиком. Ладно буду перекодировать и смотреть что получаться будет.
     
  6. Amperandus

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

    С нами с:
    13 мар 2009
    Сообщения:
    226
    Симпатии:
    11
    хм.. у кого нить еще варианты есть?
     
  7. <?=RPG?>

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

    С нами с:
    19 ноя 2010
    Сообщения:
    451
    Симпатии:
    0
    $result = preg_replace('/.*?itemTable/g','',$info);
    а?
     
  8. Amperandus

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

    С нами с:
    13 мар 2009
    Сообщения:
    226
    Симпатии:
    11
    Unknown modifier 'g'
     
  9. <?=RPG?>

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

    С нами с:
    19 ноя 2010
    Сообщения:
    451
    Симпатии:
    0
    Вот моск опух, уже РНР и js путаю:)
    $result = preg_replace('/.*?itemTable/s','',$info);
     
  10. Amperandus

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

    С нами с:
    13 мар 2009
    Сообщения:
    226
    Симпатии:
    11
    Не помогает.

    Прогнал текст через htmlspecialchars и вывел на просмотр.

    Видно что удаляется только часть текста перед заданной маской

    в оригинале:

    видимо дело в многострочности.

    хотя /s все равно не помог...
     
  11. Amperandus

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

    С нами с:
    13 мар 2009
    Сообщения:
    226
    Симпатии:
    11
    Бррр. переписал по новой целиком функцию один в один - стало работать... пора бубен покупать видимо.
     
  12. Amperandus

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

    С нами с:
    13 мар 2009
    Сообщения:
    226
    Симпатии:
    11
    Хм.. если заменить itemTable на строку из таблицы на русском языке, снова перестает работать. Видимо все таки придется из распарсенного массива уже по маске удалять...