随机应用随机变量

时间:2011-05-15 17:02:52

标签: php string random

我有代码生成随机字体并在每行文本中应用新的随机字体,并希望添加

$line = str_replace ("a", "@", $line);

但我希望将这个应用于每一行的几率为10%,而不是整体应用于字符串。我该怎么做?这是我现有的代码:

$fonts = array("Helvetica", "Arial", "Courier", "Georgia", "Serif", "Comic Sans", "Tahoma", "Geneva", "Times New Roman");
shuffle($fonts);

$output = "";

$lines = array_slice(file("users.txt"), -20, 20);

$i = 0;
foreach ( $lines as $line ) {
  if($i == count($fonts)) {
    shuffle($fonts);
    $i = 0;
  }
  $output .= '<div style="font-size: ' . rand(15, 23) . 'px; font-family:' . $fonts[$i] . '; margin-left: ' . rand(0, 60) . '%; opacity: 0.8;">' . $line . "</div>\n";
  $i++;
    }

echo $output;

我刚刚开始熟悉php,我觉得好像我有一个全新的网络玩! :d

2 个答案:

答案 0 :(得分:4)

如果您希望有10%的机会将'a'更改为'@',请尝试插入此代码:

if(rand(0, 9) == 1)
{
    $line = str_replace ("a", "@", $line);
}

它生成一个0到9的整数,如果它等于1(10%的几率,那么它会应用你的格式。

答案 1 :(得分:1)

所以,在te foreach($lines as $line)循环中,添加此

$rand = rand(0,9);
if($rand == 0)
{
    $line = str_replace("a","@",$line);
}