我有以下字符串: ^1Flo^2wer^3Po^4wer 你可以看到这个例子http://www.holysh1t.net/quake-live-colors-nickname/
我希望能够获取此字符串并使用 PHP 在我的 html 页面中以彩色显示它。
不幸的是,我没有成功,想知道是否有人可以帮助想出一些代码来做到这一点。
谢谢克鲁兹
我有以下字符串: ^1Flo^2wer^3Po^4wer 你可以看到这个例子http://www.holysh1t.net/quake-live-colors-nickname/
我希望能够获取此字符串并使用 PHP 在我的 html 页面中以彩色显示它。
不幸的是,我没有成功,想知道是否有人可以帮助想出一些代码来做到这一点。
谢谢克鲁兹
您可以根据自己的喜好替换/\^([1-7])([^\^]+)/
为<span class="quake_colour_$1">$2</span>
然后更改 CSS 中的颜色。
粘贴到您的 CSS 文件中:
.quake-colour-1 {
color: red;
}
.quake-colour-2 {
color: lime;
}
.quake-colour-3 {
color: yellow;
}
.quake-colour-4 {
color: blue;
}
.quake-colour-5 {
color: cyan;
}
.quake-colour-6 {
color: magenta;
}
.quake-colour-7 {
color: white;
background-color: silver;
}
和代码:
<?php
$string = '^1Flo^2wer^3Po^4wer';
$html = preg_replace('/\^([1-7])([^\^]+)/', '<span class="quake_colour_$1">$2</span>', $string);
echo $html;
?>
哪个输出:
<span class="quake_colour_1">Flo</span><span class="quake_colour_2">wer</span><span class="quake_colour_3">Po</span><span class="quake_colour_4">wer</span>
或者,您可以使用 inline-css 执行此操作:
<?php
class QuakeColour {
private static $colours = array(
1 => 'red',
2 => 'lime',
3 => 'yellow',
4 => 'blue',
5 => 'cyan',
6 => 'magenta',
7 => 'white'
);
private static function Replace($matches) {
return '<span style="color: ' . self::$colours[$matches[1]] . '">' . $matches[2] . '</span>';
}
public static function Parse($string) {
return preg_replace_callback('/\^([1-7])([^\^]+)/', 'QuakeColour::Replace', $string);
}
}
$string = '^1Flo^2wer^3Po^4wer';
var_dump(QuakeColour::Parse($string));
?>
哪个输出
string(144) "<span style="color: red">Flo</span><span style="color: lime">wer</span><span style="color: yellow">Po</span><span style="color: blue">wer</span>"
正则表达式尸检:
\^
一个文字^
字符。需要像^
正则表达式字符一样进行转义。([1-7])
匹配从 1 到 7 的数字的捕获组([^\^]+)
一个捕获组匹配非 ^
字符的字符,重复 1 次或多次即使您至少应该在提出问题之前尝试一些事情..这是一个关于如何做到这一点的基本算法。
explode('^', $my_string)
foreach element in the exploded array:
extract the first character and asociate it with a color
print "<span style='background-color:" . $color . "'>" . $text . "</span>"
这可能会给你一个大致的想法如何做到这一点。希望这可以帮助
在 ^X 符号上拆分字符串 检索每个部分的 X 打印 content_of_part_till_next_^ 和
你应该完成了
很容易做一个虚拟的东西,但你会通过这样做来学习它:
首先尝试拆分 ^ 并使用字符串操作进行处理。尝试explode() 或正则表达式