2011-08-23 108 views
0

我想在這裏實現的是回顯5個鏈接的列表,鏈接是從一個文件中的關鍵字(逗號分隔)(keyword1,keyword2)創建的。該文件包含20個關鍵字,我想要隨機抓取5個以顯示每個頁面加載。PHP - 選擇隨機字符串/變量來從文件回顯

我目前遇到的問題是,所有的關鍵字,呼應了,而不是僅僅5這是我有:

<?php 

$keywords=file_get_contents("keywordlist.php"); 

$keyword_list = explode("\n",$keywords); 
shuffle($keyword_list); 

$display = 5; 

if((count($keyword_list) - 1) > ($display - 1)) 
    { 
     $show = $display - 1; 
     } 
else 
    { 
     $show = count($keyword_list) - 1; 
     } 

     for ($i=0; $i<=$show; $i++) 
      { 
       $page_name = $keyword_list[$i]; 
       $clean_list = str_replace(" ","-",$page_name); 
       $output .= '<a href="/'.$clean_list.'">'.$page_name.'</a>, '; 
       } 

echo $output; 

?> 

任何幫助,將不勝感激謝謝:)

+0

什麼不工作或你得到什麼錯誤? – Matt

回答

1
<?php 

$keywords = explode(",", file_get_contents("keywordlist.php")); 
shuffle($keywords); 
$links = array(); 
foreach (array_slice($keywords, 0, 5) as $word) { 
    $word = trim($word); 
    $slug = str_replace(" ", "-", $word); 
    $links[] = '<a href="/' . $slug . '">' . $word . '</a>'; 
} 
echo join(',', $links); 
+0

剛剛過去,它似乎比我以前的代碼更友好。謝謝。 – Jessica

1

你說

中的文件是逗號分隔

然後在你的代碼中

$keyword_list = explode("\n",$keywords); 


所以,如果您的關鍵字之間用逗號隔開,更改您的代碼

$keyword_list = explode(",",$keywords); 

以其他方式改變輸入文件。

+1

大聲笑這麼簡單,不敢相信我沒有注意到。謝謝哈哈:) – Jessica