【问题标题】:How to use randomize links using php [closed]如何使用 php 随机化链接 [关闭]
【发布时间】:2013-02-24 10:49:20
【问题描述】:

我正在使用array_rand() 尝试随机化 3 个链接。我基本上希望在刷新页面时显示不同的链接。这是我到目前为止所尝试的。

$links = '<a href="http://google.com">google</a>, <a href="http://facebook.com">facebook</a>, <a href="http://yahoo.com">yahoo</a>';
$links_to_array = preg_split("/ ,/", $links );
$randomize = array_rand($link_to_array, 1);
echo ($links_to_array[$randomize]);

所以基本上当我刷新它似乎工作但有时所有链接都会同时出现。你可以自己试一试,然后告诉我我需要修复的地方。

非常感谢您的宝贵时间。

【问题讨论】:

    标签: php html arrays hyperlink


    【解决方案1】:

    应该是

    $links_to_array = preg_split("/, /", $links, -1, PREG_SPLIT_NO_EMPTY);
    

    更新:

    $links = array('<a href="http://google.com">google</a>', 
                   '<a href="http://facebook.com">facebook</a>', 
                   '<a href="http://yahoo.com">yahoo</a>');
    
    
    echo $links[rand(0,2)]; // instead of 2 you can also write count($links)
    

    【讨论】:

    • 感谢 powtac。所有链接仍然显示,而不是在每次页面刷新时随机显示。
    • @RonnyKibet 我更新了代码。
    • 感谢 powtac.. 这也很好用。 :)
    • 虽然使用preg_split() 更好地写成$links_to_array = preg_split("/, /", $links, -1, PREG_SPLIT_NO_EMPTY); 以避免数组中的空元素。
    • 谢谢@Winston,我更新了答案。
    【解决方案2】:
    $links = '<a href="http://google.com">google</a>, <a href="http://facebook.com">facebook</a>, <a href="http://yahoo.com">yahoo</a>';
    $links_to_array = explode(", ", $links);
    $randomize = array_rand($links_to_array, 1);
    echo ($links_to_array[$randomize]);
    

    【讨论】:

    • 这是我使用您的代码时的输出。 googlefacebookgooglefacebookfacebookgooglegoogle 感谢您的努力。
    • @RonnyKibet 我不明白你的意思..,我的代码只输出一个随机链接。还是我没有正确理解你?
    • 哦!只是把它绑起来,它工作得很好。谢谢温斯顿。 :)
    【解决方案3】:

    您正在使用 preg_split,逗号前有一个空格,而不是空格前的逗号。请改用explode(',', $links)

    【讨论】:

    • 谢谢罗伯。尽管仍然显示所有链接,但这有所作为。 :(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-16
    • 2016-01-22
    • 1970-01-01
    • 1970-01-01
    • 2013-05-01
    • 2013-01-07
    • 1970-01-01
    相关资源
    最近更新 更多