gpt4 book ai didi

PHP:正则表达式 preg_replace_callback 匹配 PHP 中的所有数字

转载 作者:行者123 更新时间:2023-12-04 06:21:03 24 4
gpt4 key购买 nike

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

上面的输出看起来像这样:
<span style="color:#FF0000;">152</span>

它工作得很好,除非数字是 0,否则它会从输出中删除。导致问题的线路是 $rows = array_filter( explode( "\n", $text ) );_getHtmlCode .确切原因是 array_filter .如果我删除它,我的输出会完全损坏,但会出现 0。如果我离开它,0 将被删除。

有想法该怎么解决这个吗?

最佳答案

Man page因为 array_filter 有你的答案

If no callback is supplied, all *entries of input equal to FALSE (see* converting to boolean) will be *removed.*



我相信 0 evaluates to FALSE .

我目前无法测试,但我相信这会奏效
$rows = array_filter( explode( "\n", $text ), 'is_string' );

关于PHP:正则表达式 preg_replace_callback 匹配 PHP 中的所有数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6560881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com