2
内のすべての番号と一致する正規表現preg_replace_callback
preg_replace_callback("/[0-9]*/", array(&$this, '_getPHPNumber'), $code);
private function _getPHPNumber($matches) {
return ($this->_getHtmlCode($matches[0], PHP::$Colors['number']));
}
private function _getHtmlCode($text, $color) {
$rows = array_filter(explode("\n", $text));
$count = count($rows);
$output = '';
for ($i = 0; $i < $count; $i++) {
$n = ($count > 1 ? ($i != $count - 1 ? "\n" : "") : "");
$output .= "<span style=\"color:{$color};\">{$rows[$i]}</span>{$n}";
}
return ($output);
}
上記の出力は次のようになります。PHP:PHP
<span style="color:#FF0000;">152</span>
数が0であれば、それは出力から削除される以外それは、素晴らしい作品。問題を引き起こしている行は_getHtmlCode
の$rows = array_filter(explode("\n", $text));
です。正確な原因はarray_filter
です。私はそれを削除すると、私の出力が完全に壊れているが、0が表示されます。私がそれを残すと、0は削除されます。
これを修正する方法についてのご意見はありますか?