X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

5 страниц V  < 1 2 3 4 5 >
Открыть тему
Тема закрыта
> PHP разбить текст по предложениям.
DeimosFobos
DeimosFobos
сообщение 9.8.2010, 23:25; Ответить: DeimosFobos
Сообщение #22


(webpavilion @ 9.8.2010, 23:02) *
ну да, это было в условиях игры.

ok:) .
Вот вам версия для UTF-8
1000 повторений 'DeimosFobos 1.1': 0.248 сек.
1000 повторений 'webpavilion 1.1': 0.255 сек.

<?php

function r ($timestart,$timestop,$name) {
    global $p;
    echo "$p повторений '$name': ", round(($timestop-$timestart), 3), ' сек.<br>';    
}

$p = 1000;
$path = 'text.txt';
$intxt = file_get_contents($path);
$text = $intxt;

#---------------------------------------------------------
$timestart = microtime(true);
for($t = 0; $t < $p; $t++) {
    preg_match_all("/.*[.?!]{1,}+\s/SUu", $text, $array);
    $randnum = mt_rand(3, 6);
    $nownum = 0;
    $lc = 0;
    $lines = array();

    foreach( $array[0] as $line ) {
        if($line) {
            if($nownum >= $randnum) {
                $randnum = mt_rand(3, 6);
                $nownum = 0;
                $lc++;
            }
            $lines[$lc] .= $line;
            $nownum++;
        }
    }

}
r($timestart, microtime(true), 'DeimosFobos 1.1');
$timestart = microtime(true);
for($t = 0; $t < $p; $t++) {
    unset ($new);
    preg_match_all("#(.+)[\.!?](\s{0,3}|$)#SUu",$intxt,$match);
    $txt = $match[0];
    $count = count($txt);
    $start = 0;
    $rand = mt_rand(3, 6);

    while ($start<=$count) {
        $new[] = implode(' ', array_slice($txt,$start, $rand));
        $start += $rand;
        $rand = mt_rand(3, 6);
    }
    $last = count($new)-1;
    if ($new[$last] == '') unset ($new[$last]);

}
r($timestart, microtime(true), 'webpavilion 1.1');
#---------------------------------------------------------

?>
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
webpavilion
webpavilion
сообщение 9.8.2010, 23:33; Ответить: webpavilion
Сообщение #23


цикл for - самый быстрый smile.gif

ошибку бы с последним предложением исправили и не забывайте обновлять версии а то запутаемся.
<?php

function r ($timestart,$timestop,$name) {
    global $p;
    echo "$p повторений '$name': ", round(($timestop-$timestart), 3), ' сек.<br>';
}

$p = 1000;
$path = 'text.txt';
$intxt = file_get_contents($path);
$text = $intxt;

#---------------------------------------------------------
$timestart = microtime(true);
for($t = 0; $t < $p; $t++) {
    preg_match_all("/.*[.?!]{1,}+\s/SUu", $text, $array);
    $randnum = mt_rand(3, 6);
    $nownum = 0;
    $lc = 0;
    $lines = array();

    foreach( $array[0] as $line ) {
        if($line) {
            if($nownum >= $randnum) {
                $randnum = mt_rand(3, 6);
                $nownum = 0;
                $lc++;
            }
            $lines[$lc] .= $line;
            $nownum++;
        }
    }

}
r($timestart, microtime(true), 'DeimosFobos 1.2');
$timestart = microtime(true);
for($t = 0; $t < $p; $t++) {
    $new = array();
    preg_match_all("#.+[\.!?](\s{0,3}|$)#SUu",$intxt,$match);
    $txt = $match[0];
    $count = count($txt);
    $rand = mt_rand(3, 6);

    for ($start = 0; $start<=$count;$start += $rand) {
        $new[] = implode(' ', array_slice($txt,$start, $rand));
        $rand = mt_rand(3, 6);
    }
    $last = count($new)-1;
    if ($new[$last] == '') unset ($new[$last]);

}
r($timestart, microtime(true), 'webpavilion 1.2');
#---------------------------------------------------------
?>


1000 повторений 'webpavilion 1.2': 0.279 сек.
1000 повторений 'DeimosFobos 1.2': 0.322 сек.


--------------------
Не ведитесь, cамопис это почти всегда плохо!

Делаю сайты на Drupal 7.x
(очень дорого)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Jepps
Jepps
сообщение 9.8.2010, 23:38; Ответить: Jepps
Сообщение #24


(webpavilion @ 9.8.2010, 23:02) *
Вдвоём как то не весело получается, я в прошлом году в офисе соревнования проводил: времени час, вариант на проверку один, приз ящик пива и закуска.

Могу проспонсировать ящиком пива и закуской.


--------------------
Забанен за игнорирование обязательств по оплате труда (случай #2) и оскорбление администрации.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
DeimosFobos
DeimosFobos
сообщение 9.8.2010, 23:46; Ответить: DeimosFobos
Сообщение #25


(Jepps @ 9.8.2010, 23:38) *
1000 повторений 'webpavilion 1.2': 0.279 сек.
1000 повторений 'DeimosFobos 1.2': 0.322 сек.

webpavilion, быстрая - да. правильная - нет! wink.gif
рвет текст.
    [0] => Array
        (
            [0] => SWOT-анализ раскручивает потребительский рынок, используя опыт предыдущих кампаний.
            [1] =>  Продуктовый ассортимент, несмотря на внешние воздействия, интуитивно понятен.
            [2] =>  Гелиоцентрическое расстояние, сублимиpуя с повеpхности ядpа кометы, просветляет сарос, используя опыт предыдущих кампаний.
            [3] =>  Часовой угол, в рамках сегодняшних воззрений, синхронно образует астероидный годовой параллакс, таким образом объектом имитации является число длительностей в каждой из относительно автономных ритмогрупп ведущего голоса.
            [4] =>  Флажолет неравномерен.
            [5] =>  Стимулирование коммьюнити варьирует терминатор, это довольно часто наблюдается у сверхновых звезд второго типа.
            [6] =>  Ось, согласно традиционным представлениям, представляет собой длительностный секстант, данное соглашение было заключено на 2-й международной конференции "Земля из космоса - наиболее эффективные решения".
            [7] =>  Векторно-зеркальная синхронность, и это особенно заметно у Чарли Паркера или Джона Колтрейна, жизненно просветляет целевой сегмент рынка, благодаря широким мелодическим скачкам.
            [8] =>  Как предсказывают футурологи крещендирующее хождение спонтанно детерминирует терминатор, на этих моментах останавливаются Л.
            [9] => А.
            [10] => Мазель и В.
            [11] => А.
            [12] => Цуккерман в своем "Анализе музыкальных произведений".
            [13] =>  Как отмечает Майкл Мескон, пуанта изящно гасит социальный статус, таким образом конструктивное состояние всей музыкальной ткани или какой-либо из составляющих ее субструктур (в том числе: временнoй, гармонической, динамической, тембровой, темповой) возникает как следствие их выстраивания на основе определенного ряда (модуса).
            [14] =>  Зенитное часовое число использует Ганимед, хотя это довольно часто напоминает песни Джима Моррисона и Патти Смит.
            [15] =>  Кульминация прочно продолжает дорийский эксцентриситет, однако сами песни забываются очень быстро.
            [16] =>  Бизнес-план последовательно представляет собой радиант, о чем подробно говорится в книге М.
            [17] => Друскина "Ганс Эйслер и рабочее музыкальное движение в Германии".
            [18] =>  Параллакс сбалансирован.
            [19] => Иными словами, интервально-прогрессийная континуальная форма индуктивно тормозит флэнжер, хотя это довольно часто напоминает песни Джима Моррисона и Патти Смит.
            [20] =>  Имидж предприятия, на первый взгляд, перечеркивает непреложный популяционный индекс, но если бы песен было раз в пять меньше, было бы лучше для всех.
            [21] =>  Флюгель-горн многопланово позиционирует миксолидийский принцип восприятия, а после исполнения Утесовым роли Потехина в "Веселых ребятах" слава артиста стала всенародной.
            [22] =>  Конечно, нельзя не принять во внимание тот факт, что фаза продуцирует мономерный побочный PR-эффект, не считаясь с затратами.
            [23] =>  Глиссандо переворачивает мнимотакт, но кольца видны только при 40–50.
            [24] =>  Раскрутка охватывает хроматический спектральный класс, не считаясь с затратами.
            [25] =>  Отвесная линия пока плохо продолжает афелий , оптимизируя бюджеты.
            [26] =>  Действительно, процессуальное изменение поддерживает шоу-бизнес, учитывая, что в одном парсеке 3,26 световых года.
            [27] =>  Высота прекрасно переворачивает болид , оптимизируя бюджеты.
            [28] =>  Различное расположение специфицирует вращательный параметр, о чем подробно говорится в книге М.
            [29] => Друскина "Ганс Эйслер и рабочее музыкальное движение в Германии".
            [30] =>  Весеннее равноденствие , а там действительно могли быть видны звезды, о чем свидетельствует Фукидид решает параллакс, осознав маркетинг как часть производства.
            [31] =>  Каллисто вызывает контент, данное соглашение было заключено на 2-й международной конференции "Земля из космоса - наиболее эффективные решения".
            [32] =>  Производство, и это особенно заметно у Чарли Паркера или Джона Колтрейна, изменяет типичный динамический эллипсис, используя опыт предыдущих кампаний.
        )
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
webpavilion
webpavilion
сообщение 9.8.2010, 23:48; Ответить: webpavilion
Сообщение #26


(Jepps @ 9.8.2010, 23:38) *
Могу проспонсировать ящиком пива и закуской.

начатым ящиком пива меня может проспонсировать прямо сейчас мой хрущевский холодильник, закуской тоже дело в том что играться нес кем, всех толковых ребят пришлось уволить из за сраного кризиса ликвидности, а стем что набрал в этом можно только в еву, линейку или варик поиграть... скучно.


--------------------
Не ведитесь, cамопис это почти всегда плохо!

Делаю сайты на Drupal 7.x
(очень дорого)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
gangstar90
gangstar90
сообщение 9.8.2010, 23:52; Ответить: gangstar90
Сообщение #27


ждем-с утра, сделайте скрипты с кешированием, минимальной нагрузкой и временем выполнения 0.001с на 1мб текста smile.gif


--------------------
Стабильный доход для сайтов ipad тематики!
Писать в лс для рассмотрения Вашего ресурса
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
DeimosFobos
DeimosFobos
сообщение 9.8.2010, 23:55; Ответить: DeimosFobos
Сообщение #28


(webpavilion @ 9.8.2010, 23:33) *
цикл for - самый быстрый smile.gif

вы проверяли?
вот вам сравнение:
<?php

function r ($timestart,$timestop,$name) {
    global $p;
    echo "$p повторений '$name': ", round(($timestop-$timestart), 3), ' сек.<br>';
}
$p = 10000;
$array = array("text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text");

$timestart = microtime(true);
for($t = 0; $t < $p; $t++) {
   $count = count($array);
    for($i = 0; $i < $count; $i++) {
        $value = $array[$i];
    }

}
r($timestart, microtime(true), 'for');

$timestart = microtime(true);
for($t = 0; $t < $p; $t++) {
    foreach($array as $value) {
        
    }
}
r($timestart, microtime(true), 'foreach');
?>

10000 повторений 'for': 0.031 сек.
10000 повторений 'foreach': 0.013 сек.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
webpavilion
webpavilion
сообщение 10.8.2010, 0:00; Ответить: webpavilion
Сообщение #29


(DeimosFobos @ 9.8.2010, 23:55) *
вы проверяли?

когда то давно проверял

ваш скрипт все равно с ошибкой так что пока я лидирую!


--------------------
Не ведитесь, cамопис это почти всегда плохо!

Делаю сайты на Drupal 7.x
(очень дорого)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
DeimosFobos
DeimosFobos
сообщение 10.8.2010, 0:03; Ответить: DeimosFobos
Сообщение #30


(webpavilion @ 10.8.2010, 0:00) *
ваш скрипт все равно с ошибкой так что пока я лидирую!

где в нем ошибка?
это у вас ошибка, рвет текст.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
webpavilion
webpavilion
сообщение 10.8.2010, 0:15; Ответить: webpavilion
Сообщение #31


(DeimosFobos @ 10.8.2010, 0:03) *
где в нем ошибка?

array
  0 =>
    array
      0 => string 'SWOT-анализ раскручивает потребительский рынок, используя опыт предыдущих кампаний. ' (length=153)
      1 => string 'Продуктовый ассортимент, несмотря на внешние воздействия, интуитивно понятен. ' (length=145)
      2 => string 'Гелиоцентрическое расстояние, сублимиpуя с повеpхности ядpа кометы, просветляет сарос, используя опыт предыдущих кампаний. ' (length=226)
      3 => string 'Часовой угол, в рамках сегодняшних воззрений, синхронно образует астероидный годовой параллакс, таким образом объектом имитации является число длительностей в каждой из относительно автономных ритмогрупп ведущего голоса. ' (length=412)
      4 => string 'Флажолет неравномерен. ' (length=43)
      5 => string 'Стимулирование коммьюнити варьирует терминатор, это довольно часто наблюдается у сверхновых звезд второго типа. ' (length=209)
      6 => string 'Ось, согласно традиционным представлениям, представляет собой длительностный секстант, данное соглашение было заключено на 2-й международной конференции "Земля из космоса - наиболее эффективные решения". ' (length=376)
      7 => string 'Векторно-зеркальная синхронность, и это особенно заметно у Чарли Паркера или Джона Колтрейна, жизненно просветляет целевой сегмент рынка, благодаря широким мелодическим скачкам. ' (length=330)
      8 => string 'Как предсказывают футурологи крещендирующее хождение спонтанно детерминирует терминатор, на этих моментах останавливаются Л.А.Мазель и В.А.Цуккерман в своем "Анализе музыкальных произведений". ' (length=358)
      9 => string 'Как отмечает Майкл Мескон, пуанта изящно гасит социальный статус, таким образом конструктивное состояние всей музыкальной ткани или какой-либо из составляющих ее субструктур (в том числе: временнoй, гармонической, динамической, тембровой, темповой) возникает как следствие их вы�'... (length=602)
      10 => string 'Зенитное часовое число использует Ганимед, хотя это довольно часто напоминает песни Джима Моррисона и Патти Смит. ' (length=210)
      11 => string 'Кульминация прочно продолжает дорийский эксцентриситет, однако сами песни забываются очень быстро. ' (length=185)
      12 => string 'Бизнес-план последовательно представляет собой радиант, о чем подробно говорится в книге М.Друскина "Ганс Эйслер и рабочее музыкальное движение в Германии". ' (length=288)
      13 => string 'Параллакс сбалансирован.
' (length=47)
      14 => string 'Иными словами, интервально-прогрессийная континуальная форма индуктивно тормозит флэнжер, хотя это довольно часто напоминает песни Джима Моррисона и Патти Смит. ' (length=299)
      15 => string 'Имидж предприятия, на первый взгляд, перечеркивает непреложный популяционный индекс, но если бы песен было раз в пять меньше, было бы лучше для всех. ' (length=272)
      16 => string 'Флюгель-горн многопланово позиционирует миксолидийский принцип восприятия, а после исполнения Утесовым роли Потехина в "Веселых ребятах" слава артиста стала всенародной. ' (length=316)
      17 => string 'Конечно, нельзя не принять во внимание тот факт, что фаза продуцирует мономерный побочный PR-эффект, не считаясь с затратами. ' (length=227)
      18 => string 'Глиссандо переворачивает мнимотакт, но кольца видны только при 40–50. ' (length=126)
      19 => string 'Раскрутка охватывает хроматический спектральный класс, не считаясь с затратами. ' (length=149)
      20 => string 'Отвесная линия пока плохо продолжает афелий , оптимизируя бюджеты. ' (length=123)
      21 => string 'Действительно, процессуальное изменение поддерживает шоу-бизнес, учитывая, что в одном парсеке 3,26 световых года. ' (length=208)
      22 => string 'Высота прекрасно переворачивает болид , оптимизируя бюджеты. ' (length=113)
      23 => string 'Различное расположение специфицирует вращательный параметр, о чем подробно говорится в книге М.Друскина "Ганс Эйслер и рабочее музыкальное движение в Германии". ' (length=297)
      24 => string 'Весеннее равноденствие , а там действительно могли быть видны звезды, о чем свидетельствует Фукидид решает параллакс, осознав маркетинг как часть производства. ' (length=295)
      25 => string 'Каллисто вызывает контент, данное соглашение было заключено на 2-й международной конференции "Земля из космоса - наиболее эффективные решения". ' (length=263)

нет 26 предложения:
Производство, и это особенно заметно у Чарли Паркера или Джона Колтрейна, изменяет типичный динамический эллипсис, используя опыт предыдущих кампаний.


я как бы спать, завтра на работу.

вот чем на сегодня хотел бы закончить (строк не рвет, предложения не теряет):
<?php

function r ($timestart,$timestop,$name) {
    global $p;
    echo "$p повторений '$name': ", round(($timestop-$timestart), 3), ' сек.<br>';
}

$p = 1000;
$path = 'text.txt';
$intxt = file_get_contents($path);
$text = $intxt;

#---------------------------------------------------------
$timestart = microtime(true);
for($t = 0; $t < $p; $t++) {
    preg_match_all("/.*[.?!]{1,}+\s/SUu", $text, $array);
    
    $randnum = mt_rand(3, 6);
    $nownum = 0;
    $lc = 0;
    $lines = array();

    foreach( $array[0] as $line ) {
        if($line) {
            if($nownum >= $randnum) {
                $randnum = mt_rand(3, 6);
                $nownum = 0;
                $lc++;
            }
            $lines[$lc] .= $line;
            $nownum++;
        }
    }

}
r($timestart, microtime(true), 'DeimosFobos 1.2');
#---------------------------------------------------------
$timestart = microtime(true);
for($t = 0; $t < $p; $t++) {
    $new = array();
    preg_match_all('#.+[\.!?](\s|$)#SUu',$intxt,$match);

    $count = count($match[0]);
    $rand = mt_rand(3, 6);

    for ($start = 0; $start<=$count;$start += $rand) {
        $new[] = implode(' ', array_slice($match[0],$start, $rand));
        $rand = mt_rand(3, 6);
    }
}
r($timestart, microtime(true), 'webpavilion 1.3');
#---------------------------------------------------------


1000 повторений 'webpavilion 1.3': 0.28 сек.
1000 повторений 'DeimosFobos 1.2': 0.323 сек.


--------------------
Не ведитесь, cамопис это почти всегда плохо!

Делаю сайты на Drupal 7.x
(очень дорого)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
5 страниц V  < 1 2 3 4 5 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Раскройте свой потенциал заработка с помощью 2x2 Media Network — вашего пути к выгодным предложениям CPA!
Присоединяйтесь к 2x2 Media Network, вашему надежному партнеру в мире
11 2x2MediaLimited 3276 18.4.2024, 4:22
автор: 2x2MediaLimited
Открытая тема (нет новых ответов) SEO-текст на главной странице сайта и в категориях
5 boltuk 1425 26.3.2024, 21:43
автор: c4p1t4l15t
Открытая тема (нет новых ответов) Можно ли в старый SEO текст вместо старого домена поставить новый?
3 Tutich 1215 22.3.2024, 14:47
автор: Tutich
Открытая тема (нет новых ответов) СОЗДАНИЕ : / САЙтЫ / ЛЕНДЫ / БОТЫ ТГ / ВАЙТЫ / КРЕО / СОФТЫ / ДИЗАЙН [PHP, JS, HTML/CSS] и другое
5 CULA 3401 19.12.2023, 18:55
автор: CULA
Открытая тема (нет новых ответов) Услуги по созданию и доработке скриптов PHP, MySQL, JavaScript, jQuery
Разработка сайтов и сервисов под-ключ
0 alexey 1242 24.11.2023, 14:46
автор: alexey


 



RSS Текстовая версия Сейчас: 20.4.2024, 4:17
Дизайн