我已經從數據庫中提取數據,並基於拉到信息的腳本,我想上色它和東西使用的preg_replace上色的東西
我想使它所以如果拉的數據是
是&cTe&bst
它與
<font style="color:#F55">Te</font><font style="color:#5FF">st</font>
替換它也是我需要確保我可以給它添加越來越多。
我也希望它是一個函數,所以我可以簡單地做
$this->colorize('&cTe&bst');
我用笨
我已經從數據庫中提取數據,並基於拉到信息的腳本,我想上色它和東西使用的preg_replace上色的東西
我想使它所以如果拉的數據是
是&cTe&bst
它與
<font style="color:#F55">Te</font><font style="color:#5FF">st</font>
替換它也是我需要確保我可以給它添加越來越多。
我也希望它是一個函數,所以我可以簡單地做
$this->colorize('&cTe&bst');
我用笨
function colorize($in)
{
$Colors = array(
"b" => "#000",
"w" => "#FFF",
"g" => "#AAA"
);
$in = "<span>" . $in;
foreach($Colors as $Prefix => $Color)
{
$in = str_replace("&" . $Prefix, "</span><span style='color: " . $Color . "'>", $in);
}
$in .= "</span>";
return $in;
}
簡單易用。
謝謝,它的工作: ) – unlucky4ever
而不是反覆使用<font>
標籤那樣,使用帶有一個<span>
樣式表。
<span class="blue">Te</span><span class="red">st</span>
.blue {
font-color: #3F1515;
}
.red {
font-color: #153F3F;
}
這將使它更具可讀性並使HTML在尺寸上更小。
爲了您的正則表達式嘗試&.(.*?)(?=&|$)
http://regexr.com?30qid
無需通過&
使用preg_replace
,只是explode
字符串,並從那裏:
$colors = array('c' => '#F55', 'b' => '#5FF');
$str = '&cTe&bst';
foreach (explode('&', $str) as $text)
{
$colorCode = $text[0];
$actualText = substr($text, 1);
echo '<span style="color:' . $colors[$colorCode] . '>' . $actualText . '</span>';
}
免責聲明:未經測試&hellip;
對於這一個,我得到一個錯誤「未初始化的字符串偏移量:0」爲「$ colorCode = $ text [0];」 – unlucky4ever
對不起,我沒有測試它,可能更好地爆炸的字符串,'var_dump'的結果,看看如何處理它從那裏... – dreamlax
它的作品和所有,我只是得到那個錯誤 – unlucky4ever
'&cTe&bst'應該是什麼意思?什麼是&符號?輸出字符串中遺漏的'c'和'b'是什麼? – Jack
這是一個我的世界的事情,在我的世界裏,如果你把文本放在文本之前,它會變成一種顏色,並且我希望能夠在這個項目的網站上使用它,因爲數據會被拉到那裏。 – unlucky4ever
顏色風格是否存在直到下一個'&'? – dreamlax