Применять разные стили к разным строкам текста в PHP
Возможный дубликат:
Как получить случайное значение из массива
У меня есть код применения случайного шрифта к div текста, который взят из последних 20 строк файла.txt. Я хотел бы применить разные случайные шрифты для каждой строки... какие-нибудь указатели?
<?php
$fonts = array("Helvetica", "Arial", "Courier", "Georgia", "Serif", "Comic Sans", "Tahoma");
shuffle($fonts);
$randomFont = array_shift($fonts);
$output = "";
$lines = array_slice(file("users.txt"), -20, 20);
foreach ( $lines as $line )
{
$output .= '<div style="font-family:' . $randomFont . '; margin-left: ' . rand(0, 60) . '%; opacity: 0.8;">' . $line . '</div>';
}
echo $output;
?>
3 ответа
Решение
Живая демо здесь.
Код:
$fonts = array("Helvetica", "Arial", "Courier", "Georgia", "Serif", "Comic Sans", "Tahoma");
shuffle($fonts);
$output = "";
$lines = array();
for($i = 0; $i < 40; $i++) $lines[] = "line $i";
$i = 0;
foreach ( $lines as $line ) {
if($i == count($fonts)) {
shuffle($fonts);
$i = 0;
}
$output .= '<div style="font-family:' . $fonts[$i] . '; margin-left: ' . rand(0, 60) . '%; opacity: 0.8;">' . $line . "</div>\n";
$i++;
}
echo $output;
Думал об этом и нашел более простое решение.
<?php
$fonts = array ('font 1', 'font 2', 'font 3'); // 20 entries for the full set
shuffle ($fonts);
while ($font = array_pop ($fonts))
{
$output .= '<div style="font-family:' . $font . ';"></div>';
}
?>
Очевидно, что это не точное решение проблемы, которую вы разместили выше, и не предназначено для этого. Он предназначен для предоставления примера подхода для получения случайных значений, которые гарантированно будут уникальными. Вы должны быть в состоянии включить идею, выраженную здесь, в свой собственный код без особых затруднений.
Рандомизируйте ваши шрифты:
$Random = $fonts[rand(0, count($fonts) - 1)];