【问题标题】:Randomize HTML string output随机化 HTML 字符串输出
【发布时间】:2014-10-21 02:26:57
【问题描述】:
<?php 
    $random1 = '<p>Quotes van de fans:</p><h2>Why join the navy<BR />if you can be a pirate.</h2><h3>Steve jobs</h3>';
    $random2 = '<p>Quotes van de fans:</p><h2>Lorem2</h2><h3>Steve jobs</h3>';
    $random3 = '<p>Quotes van de fans:</p><h2>Lorem3</h2><h3>Steve jobs</h3>';
    echo(rand($random1, $random2, $random3));
?>

所以我已经编写了上面的代码。我希望我的代码随机化出现的报价。是否有一种用户友好的方式可以在网站中实现这一点?

我正在用 Wordpress 建立一个网站,我想知道 Wordpress(或 PHP)是否有更简单的随机输出方法。

【问题讨论】:

    标签: php html arrays wordpress random


    【解决方案1】:

    或者,您可以定义一个包含 HTML 字符串的数组,然后使用 array_rand() 函数来获取随机条目/元素。示例:

    // set of elements with random quotes
    $quotes = array(
        '<p>Quotes van de fans:</p><h2>Why join the navy<BR />if you can be a pirate.</h2><h3>Steve jobs</h3>',
        '<p>Quotes van de fans:</p><h2>Lorem2</h2><h3>Steve jobs</h3>',
        '<p>Quotes van de fans:</p><h2>Lorem3</h2><h3>Steve jobs</h3>',
    );
    
    // apply array_rand function
    echo $quotes[array_rand($quotes)];
    

    【讨论】:

    • @MarcoGeertsma 很高兴它有帮助。
    【解决方案2】:
    $random = array();
    
    $random[] = '<p>Quotes van de fans:</p><h2>Why join the navy<BR />if you can be a pirate.</h2><h3>Steve jobs</h3>';
    $random[] = '<p>Quotes van de fans:</p><h2>Lorem2</h2><h3>Steve jobs</h3>';
    $random[] = '<p>Quotes van de fans:</p><h2>Lorem3</h2><h3>Steve jobs</h3>';
    
    shuffle($random);
    
    foreach($random as $quote)
    {
        echo $quote;
    }
    

    【讨论】:

    • 这肯定会随机化数组。但显示所有元素
    • 是的,我有点误读了这个问题。可以使用 $random[0] 作为随机报价。
    • 那个,或者如果你真的想使用 foreach(我个人不会)在第一次迭代后使用 break; 这样循环就不会重复
    【解决方案3】:

    我会使用这样的东西:

    <?php 
    $quotes = array(
        '<p>Quotes van de fans:</p><h2>Why join the navy<BR />if you can be a pirate.</h2><h3>Steve jobs</h3>',
        '<p>Quotes van de fans:</p><h2>Lorem2</h2><h3>Steve jobs</h3>',
        '<p>Quotes van de fans:</p><h2>Lorem3</h2><h3>Steve jobs</h3>'
    );
    
    echo($quotes[mt_rand(0, (count($quotes) - 1))]);
    

    ?>

    【讨论】:

      【解决方案4】:

      你也可以简洁明了地做到这一点:

      $quotes = array(
          '<p>Quotes van de fans:</p><h2>Why join the navy<BR />if you can be a pirate.</h2>    <h3>Steve jobs</h3>',
          '<p>Quotes van de fans:</p><h2>Lorem2</h2><h3>Steve jobs</h3>',
          '<p>Quotes van de fans:</p><h2>Lorem3</h2><h3>Steve jobs</h3>',
      );
      
      echo $quotes[rand(0,2)]; // 0-2 (Since array's start on 0)
      

      【讨论】:

      • 如果数组扩展了怎么办?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-07
      • 1970-01-01
      • 2016-01-04
      • 1970-01-01
      相关资源
      最近更新 更多