2012-08-02 64 views
1

希望有人能帮忙。从ul显示2个随机李 - PHP

我正在建立一个wordpress网站,作为设计的一部分,我有一些我想展示的'功能面板'。

列表中共有4个li,但我只想在每个页面上显示2个随机数。

我可以通过CSS显示/隐藏基于页面的类的每个li - 但是我想知道是否有一个更优雅的方式,通过PHP做同样的事情?

我的HTML是在这里......我不知道从哪里开始与PHP,似乎我在谷歌上搜索了错误的关键词...

<ul id="featurePanels"> 
    <li id="newBoatsPanel"> 
    <h3><a href="#">New Boats<br /> 
     <span>Text</span></a></h3> 
    </li> 
    <li id="brokeragePanel"> 
    <h3><a href="#">Brokerage<br /> 
     <span>Text</span></a></h3> 
    </li> 
    <li id="newsPanel"> 
    <h3><a href="#">News<br /> 
     <span>Text</span></a></h3> 
    </li> 
    <li id="partsPanel"> 
    <h3><a href="#">Parts<br /> 
     <span>Need text here</span></a></h3> 
    </li> 
</ul> 

任何指针将不胜感激。

谢谢。

+0

请定义优雅。我会说CSS在这里非常优雅。 – hakre 2012-08-02 08:43:29

+0

如果我在我的网站上有20个页面,我必须写20条不同的规则来显示/隐藏某些面板,这是基于我决定哪些面板显示在哪些页面上 - 基本上不是随机的。如果PHP可以在几行代码中执行相同的操作,那么它看起来就像是一个更优雅的解决方案 - 无论如何,我认为这是一个更优雅的解决方案 – 2012-08-02 08:49:13

回答

0
<?php 

$listItems = array(
'<li id="newBoatsPanel">your text here</li>', 
'<li id="brokeragePanel">more text here</li>', 
'<li id="newsPanel">text text text</li>', 
'<li id="partsPanel">Need text here</li>' 
); 

shuffle($listItems); // shuffles (randomizes the order of the elements) 

// print the list 
echo '<ul id="featurePanels">' . $listItems[0] . $listItems[1] . '</ul>'; 

?> 
+0

嗨,谢谢。这看起来像是我以后的事情,但是当将代码添加到网站时,我得到以下错误:“警告:shuffle()期望参数1为数组,null中给出的” – 2012-08-02 08:56:53

+0

一定要通过'$ listItems'作为'shuffle()'中的参数。 '$ listItems'数组必须存在。 – 2012-08-02 08:58:02

0

您可以使用 preg_match_all('/\<li.*?\>.*?\</li\>/i',$html_string,$li_list)

在$ li_list你将有李鸿章的数组,现在你可以洗牌,随机,剪接,切片或任何...

,并在最终用途implode到获取HTML。