如何在php中从字符串中提取随机子字符串?

如何在php中从字符串中提取随机子字符串?,php,keyword,Php,Keyword,我想从一个字符串中提取随机子字符串,我该怎么做 假设我有这篇文章 $text=我有一些完全随机的文本,我想处理它!但需要 一些php技能。。。; 因此,我想要一个这样的数组,带有提取的子字符串 $random_string[0] = "random text I have"; $random_string[1] = "I have, and I want to work"; $random_string[2] = "need some php skillz..."; 创建两个小于字符串

我想从一个字符串中提取随机子字符串,我该怎么做

假设我有这篇文章

$text=我有一些完全随机的文本,我想处理它!但需要 一些php技能。。。;

因此,我想要一个这样的数组,带有提取的子字符串

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

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

$random_string[2] = "need some php skillz...";
创建两个小于字符串长度的随机数

$n1=rand(1, strlen($string));
$n2=rand(1, strlen($string));
然后使用$n创建一个子字符串

希望这有帮助

更新:

你可以这样做来获得文字

$string = "Hello Stack over Flow in here ";
use explode-返回字符串数组,每个字符串都是字符串的子字符串

$pieces = explode(" ", $string);
$pieces将是字符串中的一个单独单词数组

例如:

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

$rand_words = array_rand($pieces, 2);
所以$rand_单词将从字符串中随机抽取两个单词

例如:

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

$n1=rand(1, strlen($string));
$n2=rand(1, strlen($string));
然后使用$n创建一个子字符串

希望这有帮助

更新:

你可以这样做来获得文字

$string = "Hello Stack over Flow in here ";
use explode-返回字符串数组,每个字符串都是字符串的子字符串

$pieces = explode(" ", $string);
$pieces将是字符串中的一个单独单词数组

例如:

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

$rand_words = array_rand($pieces, 2);
所以$rand_单词将从字符串中随机抽取两个单词

例如:

使用随机开始和长度

$random_string = substr($text, rand(1, mb_strlen($text) - 20), rand(10, 20));
如果需要,请调整您的值并添加更多逻辑。

用于随机开始和长度

$random_string = substr($text, rand(1, mb_strlen($text) - 20), rand(10, 20));
$words = explode(' ', $string);
$numWords = count($words);
echo join(' ', array_slice($words, mt_rand(0, $numWords - 1), mt_rand(1, $numWords)));

如果需要,请调整您的值并添加更多逻辑。

您的意思是,您没有任何关于何时或如何生成子字符串的条件??感谢您的评论,其中一个条件是在空白处截断,所以脚本不会在中间剪切单词。你的意思是你没有任何条件来确定何时或如何生成子字符串??感谢你的评论,其中一个条件是在空格处剪切,这样脚本就不会在中间剪切单词。感谢布莱尔,我怎样才能将其修改为仅在空白处截断?这不是100%正确的,如果随机数是>字符串的长度,会发生什么情况?我知道,我没有时间写一个完整的例子,这就是为什么我有最后一行文字。deceze有一个更好的方法。Blair,我怎么能把它修改为只在空白处截断?这不是100%正确的,如果随机数是>字符串的长度会发生什么?我知道,我没有时间写一个完整的例子,这就是为什么我有最后一行文字。不管怎样,deceze有更好的方法。感谢Sudantha,我怎样才能修改它,使其仅在空白处截断?@giorgio79-你能在这里发布一个例子吗?当然,如果我们有$text=一些完全随机的文本,我就要处理它!但是需要一些php技能。。。;我想你的解决方案也会像这样提取sg,但是我希望截止值总是在空白处,所以它应该是完全随机的。我会在几分钟内检查这个giime。Sudantha,我怎么能修改它,使其仅在空白处截止?@giorgio79-你能在这里举个例子吗?当然,所以,如果我们有$text=一些完全随机的文本,我就有了,我想处理它!但是需要一些php技能。。。;我想你的解决方案也会像这样提取sg,但是我希望截止值总是在空白处,所以它应该是完全随机的。我会在几分钟内检查这个giime
$words = explode(' ', $string);
$numWords = count($words);
echo join(' ', array_slice($words, mt_rand(0, $numWords - 1), mt_rand(1, $numWords)));