使用PHP进行内容旋转?
有人能帮我吗?比如说,如果我在变量中存储了一个或一个更小的部分,我怎么能随机化'{}'中的单词?使用PHP进行内容旋转?,php,string,spinning,Php,String,Spinning,有人能帮我吗?比如说,如果我在变量中存储了一个或一个更小的部分,我怎么能随机化'{}'中的单词? 例如,第一个词是“{important | sential | critical | critical | vital | importional}”,我如何让PHP随机选择其中一个词,然后响应它?谢谢你的帮助。:) 应用于您的文本文件 应用于您的文本文件 去掉开头和结尾的大括号,可以使用trim() 使用explode() 对上一步中的数组使用array\u rand() 去掉开头和结尾的
例如,第一个词是“{important | sential | critical | critical | vital | importional}”,我如何让PHP随机选择其中一个词,然后响应它?谢谢你的帮助。:) 应用于您的文本文件 应用于您的文本文件
- 去掉开头和结尾的大括号,可以使用
trim()
- 使用
explode()
- 对上一步中的数组使用
array\u rand()
- 去掉开头和结尾的大括号,可以使用
trim()
- 使用
explode()
- 对上一步中的数组使用
array\u rand()
- 将无法使用嵌套({a|x{b|c}y|z})
不会与嵌套({a|x{b|c}y|z})一起工作
查看preg_replace_callback。闻起来像面试问题:)查看preg_replace_callback。闻起来像面试问题:)或使用preg_replace_callback:(可能是这样的,但它在递归方括号上不起作用。在我看来是防弹的,我发现自己在正则表达式方面很弱,喜欢使用花费较少的例程,所以很快就想到了我的简单想法:-)或者使用preg_replace_回调:(可能是这样的,但它在递归括号上不起作用。在我看来是防弹的,我发现自己在正则表达式方面很弱,喜欢使用成本较低的例程,所以很快就想到了我的简单想法:-)它在
{rotate{fast}和{random}意外}旋转和随机
上不起作用{旋转{快速|快速}和{随机|意外}旋转并随机}
function get_random($matches)
{
$rand = array_rand($split = explode("|", $matches[1]));
return $split[$rand];
}
function show_randomized($str)
{
$new_str = preg_replace_callback('/\{([^{}]*)\}/im', "get_random", $str);
if ($new_str !== $str) $str = show_randomized($new_str);
return $str;
}
function doStuff($from){
$to="";
while(($pos=strpos($from,'{'))!==false){
$to.=substr($from,0,$pos);
$from=substr($from,$pos);
$closepos=strpos($from,'}');
$arr=explode('|',substr($from,1,$closepos-1));
$to.=$arr[array_rand($arr)];
$from=substr($from,$closepos+1);
}
return $to.$from;
}