Подскажите с функцией плиз )

Тема в разделе "Тех. вопросы", создана пользователем Bester777, 11 авг 2009.

Статус темы:
Закрыта.
  1. Bester777

    Bester777 Постоялец

    Регистр.:
    24 июл 2009
    Сообщения:
    67
    Симпатии:
    0
    Я хочу загнать текст в массив, чтобы каждое предложение было с новой строки. А потом через цикл выбирать заданное количество строк и вставлять в форму. Подскажите плиз. Мне для кседанта.
    Вот как я сделал.

    $title = file("Title.txt");
    $title = str_replace("\r\n", "", $title);
    $content = file_get_contents("Content.txt");
    $content = str_replace("\r\n", "", $content);


    for($i=0;$i<2;$i++)
    {
    $input->set_value_by_name("title", $title[$i]);

    $content2 = substr($content, 0, 500);
    $content = substr($content, 501);


    $mouse->click('35','533');

    $keyboard->input($content2,$timeout=1);
    sleep(3);
    $button->click_by_number("1");
    $browser->wait(5,3);
    $captcha = $app->dlg_captcha_from_image_number(4);
    $input->set_value_by_name("captcha", "$captcha");


    $button->click_by_number("1");

    $browser->wait(5,3);
    sleep(5);
    $anchor->click_by_inner_text("Publish an article","true");

    $browser->wait(5,3);
    }
    Минус данного скрипта в том, что после первого прогона, во втором он может вырвать текст из середины предложения ))
     
  2. CNiks0N

    CNiks0N lamp.root

    Регистр.:
    28 ноя 2008
    Сообщения:
    230
    Симпатии:
    48
    А может предложения загнать так:
    preg_match_all('/(.+?)\./is', $content, $result)
    ?
     
  3. Alix

    Alix

    Регистр.:
    27 янв 2008
    Сообщения:
    234
    Симпатии:
    84
    Как совершенно справедливо заметил CNiks0N, надо начать с нормального разбиения текста на предложения. Поищи, тут на форуме как-то обсуждался этот момент (разбиение текста по знакам препинания - ".", "!", "?" и тд).

    Забавно, что приведенный код у тебя начинает косячить только после первого прогона :)
    Плюс я не увидел реализации "заданного количества строк". То что у тебя сейчас сливает весь текст в одну строку, затем разбивает на 2 части и вводит вторую часть.
     
  4. solarscape

    solarscape Постоялец

    Регистр.:
    19 июл 2009
    Сообщения:
    109
    Симпатии:
    8
    Скрипт разбивает текст в переменной $text на предложения и добавляет их в массив $data, каждое предложение новым элементом массива.
    PHP:
    $text=preg_replace('/([\.|\?|\!])\s+([А-Я|A-Z])/','\1 |\2',$text);
    $data=explode('|'$text);
     
Статус темы:
Закрыта.