С нами с 03.10.08
Сообщения: 129
Рейтинг: 141
|
Добавлено: 28/10/08 в 10:42 |
В обчем имеем текст в переменной $text
нужно этот текст разбить на массивы по словам или словосочитаниям. Желательно рандомировать! То есть пишем в массив одно слово из текста, далее пишем 2-3 слова из текста. Подумывал вырезать символы между побелами с помощью preg_match_all . Подскажите как лучше прописать, всем рейтинг!
|
|
|
|
С нами с 18.08.04
Сообщения: 6376
Рейтинг: 4430
|
Добавлено: 28/10/08 в 11:22 |
Ты же на заказ программируешь стыдно такое спрашивать.
|
|
|
|
С нами с 03.10.08
Сообщения: 129
Рейтинг: 141
|
Добавлено: 28/10/08 в 11:51 |
dDan писал: | Ты же на заказ программируешь стыдно такое спрашивать. |
Я мнение спрашиваю, опытом поделиться
|
|
|
|
« ... full on ... »
С нами с 17.03.07
Сообщения: 670
Рейтинг: 1686
|
Добавлено: 28/10/08 в 12:02 |
Интересно! Вот такое мнение:
Код: | $text = "PHP is a scripting language, originally designed for producing dynamic web pages. It has evolved to include a command line interface capability and can be used in standalone graphical applications.";
$words = explode(' ', $text);
for($i=0; $i<count($words); $str='')
{
for($j=0; $j<mt_rand(1,4); $j++) @$str .= ' ' . $words[$i++];
$result[] = $str;
}
print_r($result); |
Для финально-рабочей версии надо чуток добавить рутины с проверками и избавиться от знаков препинания, если требуется, и т.д.
|
|
Power of the lime madness...
|
4
|
|
|
С нами с 03.10.08
Сообщения: 129
Рейтинг: 141
|
Добавлено: 28/10/08 в 12:07 |
Код: |
$massiv = explode(" ",$text);
|
Или вот так тупо простенько. Что еще посоветуете?
|
|
|
|
С нами с 03.10.08
Сообщения: 129
Рейтинг: 141
|
Добавлено: 28/10/08 в 12:16 |
Corex: красиво, четко
Код: | $massiv = explode(' ', $text);
for ($i=0; $i<count($massiv);$i++)
{
$massiv[$i] = $massiv[rand(1,count($massiv))];
}
print_r($massiv); |
Вытаскиваем из текста рандомно слова в массив. Можно отрегулировать сколько брать слов из текста.
|
|
|
|
« ... full on ... »
С нами с 17.03.07
Сообщения: 670
Рейтинг: 1686
|
Добавлено: 28/10/08 в 12:24 |
Если надо рэндомно, то в любом случае придётся делать где-то рэндом дополнительно, так что explode тут не так уж плох.
В моём вариант mt_rand(1,4) - это кол-во слов (от 1 до 4). Если нужно потом перемешать массив, то делай shuffle($result).
В твоём варианте массив состоит только из однословных ячеек, словосочетаний нет, ну и цикл не нужен, можно вот так упростить: $massiv = shuffle(explode(' ', $text));
|
|
Power of the lime madness...
|
4
|
|
|
С нами с 03.10.08
Сообщения: 129
Рейтинг: 141
|
Добавлено: 28/10/08 в 12:42 |
Corex: верно, но акцент сделан на Цитата: | Можно отрегулировать сколько брать слов из текста. |
|
|
|
|
« ... full on ... »
С нами с 17.03.07
Сообщения: 670
Рейтинг: 1686
|
Добавлено: 28/10/08 в 12:57 |
$words = array_slice(explode(' ', $text), 0, 20); - берёт первые 20 слов!
|
|
Power of the lime madness...
|
4
|
|
|
SexBlogs.Name
С нами с 13.10.03
Сообщения: 3159
Рейтинг: 962
|
Добавлено: 28/10/08 в 15:49 |
dDan писал: | Ты же на заказ программируешь стыдно такое спрашивать. |
иногда кстати действительно интересно посмотреть как можно еще реализовать тот или иной код...
другое дело что это может быть показатель величины опыта
Код: | $Alltxtfile = file_get_contents($filename);
$ArrayTxt = explode(" ",$Alltxtfile);
$start = 0;
foreach($ArrayTxt as $key => $val)
{
$end = mt_rand(0,3);
if($start<count($ArrayTxt))
{
$FinalText[$start] = implode(" ",array_slice ($ArrayTxt, $start ,$end));
$start = $start+$end;
}
} |
|
|
Submit your blog to the sex blogs list. PR=3 Quickly approve! 10 posts min. Ping every 6 hour!
|
4
|
|
|