2013-02-24 47 views
2

我正在使用array_rand()嘗試隨機化3個鏈接。我基本上想要一個不同的鏈接在頁面刷新時顯示。這是我到目前爲止所嘗試過的。如何使用隨機化鏈接使用php

$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]); 

所以基本上當我刷新它似乎工作,但有時所有的鏈接一次顯示。你可以自己嘗試一下,讓我知道我需要修復的地方。

非常感謝你的時間。

回答

1
$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]); 
+0

這是當我用你的代碼是什麼輸出。所付出的努力,但。 – Kibz 2013-02-24 10:54:49

+0

@RonnyKibet我不明白你.. googlefacebookgooglefacebookfacebookgooglegoogle感謝,我的代碼僅輸出一個隨機的鏈接,或者我沒有理解錯的話? – Winston 2013-02-24 11:01:02

+0

哦!只是把它綁起來,它完美的工作,謝謝溫斯頓。:) – Kibz 2013-02-24 11:05:50

2

應該

$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) 
+0

感謝powtac。所有的鏈接仍然顯示,而不是每個頁面刷新隨機。 – Kibz 2013-02-24 10:58:10

+0

@RonnyKibet我更新了代碼。 – powtac 2013-02-24 11:01:53

+0

感謝powtac ..這也很好。 :) – Kibz 2013-02-24 11:06:52

1

您正在使用使preg_split用逗號而不是逗號的空間之前,前一個空間。改爲使用explode(',', $links)

+0

謝謝Rob。雖然所有的鏈接仍然顯示,但這有所作爲。 :( – Kibz 2013-02-24 10:58:51