PHP - выбор случайных строк / переменных для вывода из файла - PullRequest
0 голосов
/ 23 августа 2011

Я пытаюсь получить здесь список из 5 ссылок, ссылки создаются из ключевых слов в файле, разделенном запятой (ключевое слово1, ключевое слово2). Файл содержит 20 ключевых слов, и я хочу, чтобы случайным образом получить 5 для отображения при каждой загрузке страницы.

Проблема, с которой я сейчас сталкиваюсь, заключается в том, что выводятся все ключевые слова, а не только 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;

?>

Любая помощь будет высоко ценится спасибо:)

Ответы [ 2 ]

1 голос
/ 23 августа 2011

Вы говорите

в файле, разделенном запятой

, затем в своем коде вы

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


Поэтому, если ваши ключевые слова разделены запятыми, измените код на

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

, в противном случае измените входной файл.

1 голос
/ 23 августа 2011
<?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);
...