2012-08-02 51 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。