0

データベースからデータをプルするスクリプトがあり、プルされた情報に基づいて、色を付けたいと思っています。

プルしたデータが

&cTe&bst

に置き換わります

<font style="color:#F55">Te</font><font style="color:#5FF">st</font>

しかし、私はそれにもっともっと追加できることを確認する必要もあります。

また、関数にして、簡単にできるようにしたいと思います。

$this->colorize('&cTe&bst');

CodeIgniterを使用しています

4

3 に答える 3

2
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;
}

シンプルで使いやすい。

于 2012-05-01T04:53:54.217 に答える
0

<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を試してください&.(.*?)(?=&|$)

于 2012-05-01T04:45:27.033 に答える
0

を使用する必要はありません。文字列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>';
}

免責事項:テストされていません…

于 2012-05-01T04:46:32.323 に答える