来自我的HTML或PHP页面上显示的目录的随机文章。我已经知道如何在HTML静态页面上执行此操作,但不是随机的

时间:2015-06-08 05:24:14

标签: php spintax

我正在尝试从目录中随机提取文章,然后旋转并显示。这是针对Spintax文章的例子:

{猫|狗|猴子|鱼|蜥蜴} {去了湖边|吃了一只老鼠|跳入水中}

该目录将包含多个文本文件。我敢肯定我几乎拥有它!

<?php
    function spin($s){
        preg_match('#\{(.+?)\}#is', $s, $m);
        if (empty($m)) 
            return $s;

        $t = $m[1];

        if (strpos($t, '{') !== false) 
        { 
            $t = substr($t, strrpos($t,'{') + 1);
        }

        $parts = explode("|", $t);
        $s = preg_replace("+\{".preg_quote($t)."\}+is",                    
        $parts[array_rand($parts)], $s, 1);

        return spin($s);
    }

    $articles = glob("test/*.txt");
    $file = array_rand($articles);
    $string = file_get_contents($articles[$file]);  
    $f = file_get_contents($string, "r");
    while ($line = fgets($f, 1000)) {
       echo spin($line);
    }
?>

1 个答案:

答案 0 :(得分:0)

我在20分钟后修好了。我在上面发布了一个无效的脚本。

$ f = file_get_contents($ string,“r”); $ string不属于,我有点累。

  <?php


  function spin($s){
  preg_match('#\{(.+?)\}#is',$s,$m);
  if(empty($m)) return $s;

  $t = $m[1];

  if(strpos($t,'{')!==false){
   $t = substr($t, strrpos($t,'{') + 1);
     }

     $parts = explode("|", $t);
     $s = preg_replace("+\{".preg_quote($t)."\}+is",                    
      $parts[array_rand($parts)], $s, 1);

              return spin($s);
                  }





                $articles = glob("test/*.txt");
                $files = array_rand($articles);
                 $f = fopen($articles[$files], "r");
                  while ( $line = fgets($f, 1000) ) {
                    echo spin($line);
                      }
                  ?>