首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在PHP中打印彩色字符串

如何在PHP中打印彩色字符串
EN

Stack Overflow用户
提问于 2018-06-02 21:05:46
回答 1查看 252关注 0票数 1

我想用这个颜色打印一个字符串:

当字符是奇数时,

  1. 为黄色;当字符为偶数时,为
  2. 蓝色;当字符为元音时,为
  3. 红色;当字符为辅音时,为
  4. 绿色;

例如:$string = "hi12";

  1. h =绿色
  2. i=红色
  3. 1=黄色
  4. 2=蓝色

我试过了,但似乎不起作用:

代码语言:javascript
复制
$string = "hi12"; <br>
$strCol = ""; <br>
$char = ""; <br>
$color = ""; <br>

for($i = 0; $i < strlen($string); $i++){
    $char = $string[$i];   
    if(is_numeric($char)){
        if(($char % 2) == 1){
            $color = "<p style='color:yellow;'>" + $char + "</p>";
            $strCol .= $color;
        }
        else if(($char % 2) == 0){
            $color = "<p style='color:blue;'>" + $char + "</p>";
            $strCol .= $color;
        }
    }
    else{
        if(preg_match('/^[aeiou]/i', $char)){
            $color = "<p style='color:red;'>" + $char + "</p>";
            $strCol .= $color;
        }
        else{
            $color = "<p style='color:green;'>" + $char + "</p>";
            $strCol .= $color;
        }
    }
} 

echo $strCol;
EN

回答 1

Stack Overflow用户

发布于 2018-06-11 05:19:38

代码语言:javascript
复制
$isGreen = false;
$isRed = false;
$isYellow = false;
$isBlue = false;

$string = 'some text with space';
$letterCount = strlen($string) - substr_count($string, ' ');
if (0 == $letterCount % 4) {
    $isBlue = true;
} elseif (1 == $letterCount % 4) {
    $isGreen = true;
} elseif (2 == $letterCount % 4) {
    $isRed = true;
} else {
    $isYellow = true;
}

for ($i = strlen($string) - 1; $i >= 0; $i--) {
    $letter = substr($string, $i, 1);

    if (' ' == $letter) {
        continue;
    }

    if ($isGreen) {
        $colour = 'green';
        $isGreen = !$isGreen;
        $isBlue = !$isBlue;
    } elseif ($isRed) {
        $colour = 'red';
        $isGreen = !$isGreen;
        $isRed = !$isRed;
    } elseif ($isYellow) {
        $colour = 'yellow';
        $isRed = !$isRed;
        $isYellow = !$isYellow;
    } else {
        $colour = 'blue';
        $isBlue = !$isBlue;
        $isYellow = !$isYellow;
    }
    $string = substr_replace($string, sprintf('<span style="color:%s">%s</span>', $colour, $letter) , $i, 1);
}

echo $string;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50657227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档