2012-06-27 38 views
2
$kw=explode("\n",file_get_contents("keyword.txt")); 
shuffle($kw); 

keyword.txt只是在管線關鍵字,例如:在TXT選擇每行1個隨機關鍵字

keyword1 
keyword2 
keyword3 
keyword4 
keyword5 
keyword6 
keyword7 
keyword8 
keyword9 
+0

你可以發佈keyword.txt的樣本 - 它包含每行一個字? – Sp4cecat

+0

keyword.txt排隊只是關鍵字,我在我的問題添加的例子。 – alyasabrina

回答

3

要選擇從該文件的隨機關鍵字:

<?php 
//$keywords = file('keyword.txt'); OR 
$keywords = explode("\n", file_get_contents('keyword.txt')); 
echo $keywords[ array_rand($keywords) ]; 
?> 
+0

您忘記了爆炸讀取的字符串。此外,'array_rand'第二個參數是可選的,默認爲'1'。 – Gajus

+1

不,我沒有。 [閱讀說明書](http://php.net/file) – Lusitanian

+1

對不起。這就解釋了爲什麼我經常不使用http://www.php.net/manual/en/function.file.php。 – Gajus

0

I」不能肯定我理解正確的問題,但如果你想,每行一個隨機的關鍵字來替換當前關鍵詞的選擇,你需要改變:

$kwd=$kw[$i]; 

的東西,如:

$kwds = explode(" ", $kw[$i]); // although I would use foreach to loop through the lines array... 
$kwd = reset(shuffle($kwds)); // shuffle the keywords in that line and pick the first one 
+0

好了,現在我很困惑,還有一行中的多個關鍵字或每行只有一個? – jeroen

+0

每次執行,它以每行 – alyasabrina

+0

隨機只是一個關鍵字@alyasabrina它'採取隨機只需每月line'一個關鍵詞似乎暗示着每一行有多個關鍵字... – jeroen