Требуется разбить текст

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

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

    асс

    Регистр.:
    13 окт 2006
    Сообщения:
    756
    Симпатии:
    221
    Возник вопрос как разить текст чтоб предлоежение
    было законченое.

    Делал так
    PHP:
    <?php

     $text
    ="Нужны ли области люди в условиях грядущей безработицы?
      Какие рабочие лучше - дорогие, но свои или дешевые, но чужие? Соблюсти шаткий баланс между местной рабочей силой и гастарбайтерами [B][COLOR="
    Red"]- эту[/COLOR][/B] непростую задачу приходится решать любой стране, в том числе - и России. В Суздале на международном семинаре обсуждали проблемы миграции в условиях финансового кризиса. <br><br>Мигрант, гастарбайтер - это не только забавный персонаж комедийного телешоу, но и - один самых страшных демонов в общественном сознании. Социологи бьют тревогу - какие опросы не проводи, а добиться от наших людей любви к приезжим не получается.";
    $tex =  substr("$text",100,101);
    $textstr_replace("$tex","$tex ||"$text);
    echo 
    $text ;
     
    $ary=explode("||",$text);
      
    // $ary[0] = strip_tags($ary[0],'');
       
    var_dump($ary);

    ?>
    код что я показал разбивает строку так. Вставляет разрыв в - э ||ту я выделил его красным.

    Как сделать чтоб разбивало по окончани предложения?

    Сейчас вывод масива такой
    array(2) {
    [0]=>
    string(202) "Нужны ли области и далее

    Теперь разрыв
    гастарбайтерами - э "
    [1]=>
    string(424) "ту непростую
    красным то что разорвано.

    Нужно чтоб разрыв попадал на точку
    [1]=>
    string(424) "ту непростую задачу приходится решать любой стране, в том числе - и России.

    у нас между знаком 100-101
    врезается ||
    А я хочу чтоб он вставлялся после точки .
    и России.

    отсчитывал нужное мне количество знаков(в данном пример отсчитано от 100 по 101 знак)

    и вот после 101 искало точку и вставляло ||

    Надеюсь кто нибудь поймет, что я хочу сделать.
    Спасибо.
     
  2. Starik777

    Starik777 Постоялец

    Регистр.:
    19 апр 2008
    Сообщения:
    66
    Симпатии:
    35
    PHP:
    $text preg_replace('~([\.!?])~s',"\$1###",$text);
    $text preg_split("~###~",$text);
    Получается массив с предложениями, вместо ### все что угодно.
     
  3. Liver

    Liver

    Регистр.:
    24 сен 2008
    Сообщения:
    316
    Симпатии:
    91
Статус темы:
Закрыта.