Как извлечь случайные подстроки из строки в php? - PullRequest
1 голос
/ 11 июля 2011

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

Допустим, у меня есть этот текст

$text = "Some totally random text I have, and I want to work on it! But need some php skillz...";

и в результате я хочу такой массив с извлеченными подстроками

$random_string[0] = "random text I have";

$random_string[1] = "I have, and I want to work";

$random_string[2] = "need some php skillz...";

Ответы [ 3 ]

4 голосов
/ 11 июля 2011
$words = explode(' ', $string);
$numWords = count($words);
echo join(' ', array_slice($words, mt_rand(0, $numWords - 1), mt_rand(1, $numWords)));
3 голосов
/ 11 июля 2011

Создать два случайных числа , что меньше длины строки

$n1=rand(1, strlen($string));
$n2=rand(1, strlen($string));

Затем создайте подстроку, используя $n

$new_string = substr($string, $n1, $n2)

Надеюсь, это поможет


Изменено:

Вы можете сделать это, чтобы получить слова,

$string = "Hello Stack over Flow in here ";

Использование explode - возвращает массив строк, каждая из которых является подстрокой строки

$pieces = explode(" ", $string);

$ штук будет массивом отдельных слов вашей строки

Пример:

$pieces[0] = "Hello"
$pieces[1] = "can"

Затем используйте array_rand - Выберите одну или несколько случайных записей из массива

$rand_words = array_rand($pieces, 2);

так что $rand_words будет иметь два случайных слова из вашей строки

Пример:

$rand_words[0]= "Stack"
$rand_words[1]= "Over"
0 голосов
/ 11 июля 2011

Используйте substr со случайным началом и длиной.

$random_string = substr($text, rand(1, mb_strlen($text) - 20), rand(10, 20));

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

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