簡體   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