如何从PHP中的字符串中提取随机子串?

时间:2011-07-11 04:35:06

标签: php keyword

我想从字符串中提取随机子串,我怎么能这样做?

让我说我有这个文字

$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 个答案:

答案 0 :(得分:4)

$words = explode(' ', $string);
$numWords = count($words);
echo join(' ', array_slice($words, mt_rand(0, $numWords - 1), mt_rand(1, $numWords)));

答案 1 :(得分:3)

创建两个随机数,小于字符串的长度

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

然后使用$n

创建子字符串
$new_string = substr($string, $n1, $n2)

希望这有帮助


<强>更新

你可以这样做来获取文字,

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

use explode - 返回一个字符串数组,每个字符串都是字符串的子字符串

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

$ pieces 将是您的字符串

的一系列sepearte字词

示例:

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

然后使用array_rand - 从数组中选择一个或多个随机条目

$rand_words = array_rand($pieces, 2);

所以$rand_words会有两个字符串中的随机单词

示例:

$rand_words[0]= "Stack"
$rand_words[1]= "Over"

答案 2 :(得分:0)

使用substr随机开始和长度。

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

根据需要调整您的值并添加更多逻辑。