За последние 24 часа нас посетили 20254 программиста и 1679 роботов. Сейчас ищут 1802 программиста ...

Проблема с preg_match_all

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

  1. energy2008

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

    С нами с:
    24 июн 2008
    Сообщения:
    47
    Симпатии:
    0
    $text = "
    РАЗДЕЛ A СЕЛЬСКОЕ ХОЗЯЙСТВО, ОХОТА И ЛЕСНОЕ ХОЗЯЙСТВО

    Раздел A охватывает использование природных ресурсов
    растительного и животного происхождения. Раздел включает
    ";
    preg_match_all('/(.*)/m',$text,$razdel,PREG_SET_ORDER);
    echo '<pre>';
    print_r($razdel);
    echo '</pre>';

    Казалось бы Модификатор 'm' должен включать многострочный поиск совпадений и в данном случае совпадением должен быть весь текст переменной.

    Однако результатом упорно является разбивка на строки:
    Array
    (
    [0] => Array
    (
    [0] =>
    [1] =>
    )

    [1] => Array
    (
    [0] =>
    [1] =>
    )

    [2] => Array
    (
    [0] => РАЗДЕЛ A СЕЛЬСКОЕ ХОЗЯЙСТВО, ОХОТА И ЛЕСНОЕ ХОЗЯЙСТВО
    [1] => РАЗДЕЛ A СЕЛЬСКОЕ ХОЗЯЙСТВО, ОХОТА И ЛЕСНОЕ ХОЗЯЙСТВО
    )

    [3] => Array
    (
    [0] =>
    [1] =>
    )

    [4] => Array
    (
    [0] =>
    [1] =>
    )

    [5] => Array
    (
    [0] =>
    [1] =>
    )

    [6] => Array
    (
    [0] => Раздел A охватывает использование природных ресурсов
    [1] => Раздел A охватывает использование природных ресурсов
    )

    [7] => Array
    (
    [0] =>
    [1] =>
    )

    [8] => Array
    (
    [0] => растительного и животного происхождения. Раздел включает
    [1] => растительного и животного происхождения. Раздел включает
    )
    )

    Как мне получить вхождение всего текста в переменной?
    В качестве примера привожу короткий текст.
    Самому нужно разбить текст размером 700кб на абзацы с определенным началом.
     
  2. Dima4321

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

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    PHP:
    1. <?php
    2. ini_set('display_errors',1);
    3.  
    4.  
    5.  
    6. $m ="РАЗДЕЛ A СЕЛЬСКОЕ ХОЗЯЙСТВО, ОХОТА И ЛЕСНОЕ ХОЗЯЙСТВО
    7.  
    8. Раздел A охватывает использование природных ресурсов
    9. растительного и животного происхождения. Раздел включает
    10. ";
    11.  
    12.  
    13. $poisk='/(.+)/si';
    14.  
    15. preg_match($poisk,$m,$matches);
    16.  
    17.  
    18. echo $matches[1];
    19.  
    20.  
    21. ?>