2011-05-15 139 views
0

我有代码生成随机字体并应用新的随机字体的每一行文本,并希望增加一个施加一个随机变量随机

$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

+0

你在CSS文件拉动PHP意味着或都是有特点。允许随机和严格的css克替代品? – John 2011-05-15 17:09:19

回答

4

如果你想拥有具有10%的机会,您的一个与改变“@”,那么请尝试将这个代码:

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

它生成整数0 - 9,如果它等于1(10%的机会,然后将其应用于您的格式

+0

是的,比我的小清洁工太 – Ascherer 2011-05-15 17:19:39

+0

备案了,无论什么产生的数字等于 – Ascherer 2011-05-15 17:19:58

+1

,只要它介于0和9之间! – John 2011-05-15 17:26:09

1

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

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

完美,谢谢,我会充分利用这个项目的知识! – John 2011-05-15 17:15:42