繁体   English   中英

如何简化此PHP代码?

[英]How to simplify this PHP code?

目前,我正在尝试:

$sql_words = array("select","update","set", "from", "where", "and", "order by","insert into","delete");

echo str_replace($sql_words,
         array("<span style='color:red'>SELECT</span>","<span style='color:red'>UPDATE</span>",
          "<span style='color:green'>SET</span>", "<span style='color:green'>FROM</span>",
          "<span style='color:blue'>WHERE</span>","<span style='color:green'>AND</span>",
          "<span style='color:yellow'>ORDER BY</span>",
           "<span style='color:green'>INSERT INTO</span>",
           "<span style='color:green'>DELETE</span>"),
        $variable
        );

我希望它短一些,我希望颜色是可变的。

例如:在python中,有列表推导功能,我可以这样做:

$newsql_words  = ["<span style='color:#'+randomcolor+'>'+$nice_sql_word+'</span>' for $nice_sql_word in $sql_words]

任何想法如何做到这一点的PHP?

我认为删除所有重复的html代码并在打印时使用它是很好的。 所以

foreach($sql_words as $word) {
    printf("<span style='color:%s'>%s</span>", $colors[array_rand($colors), strtoupper($word)]);
}

其中$sql_words是您的单词,而$colors是具有所有要随机化的颜色的数组。

这是最简单的事情,我不知道它的应用。 希望能帮助到你。

据我了解,您只是想为每个单词添加随机颜色? 这将完成工作并将它们全部转换为大写:

$sql_words = array("select","update","set", "from", "where", "and", "order by","insert into","delete");
$colors = array('red','green','blue','yellow');
$color_max = count($colors) - 1;
$new_sql_words = array();
foreach($sql_words as $sql_word) {
   $new_sql_words[] = "<span style='color:".$colors[rand(0,$color_max)]."'>".strtoupper($sql_word)."</span>";
}

正如AJ在评论中指出的那样,您根本不应该执行str_replace

如果您正在寻找一种生成随机颜色的方法,那么这里的链接很好:

http://www.talkincode.com/generate-a-random-colour-with-php-170.html

$colour = rand(0,10000000);
$colour = dechex($colour);

就个人而言,我将在间隔[0,255]上为每个RGB颜色分量生成一个单独的随机值,以确保我具有有效的颜色值,例如:

$colorR = dechex(rand(0,255));
$colorG = dechex(rand(0,255));
$colorB = dechex(rand(0,255));

// Normalize the string lengths to 2
$colorR = (strlen($colorR) == 2) ? $colorR : "0" . $colorR;
$colorG = (strlen($colorG) == 2) ? $colorG : "0" . $colorG;
$colorB = (strlen($colorB) == 2) ? $colorB : "0" . $colorB;

$color = $colorR . $colorG . $colorB;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM