使用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;
          }