在中文和其他字母之间添加空格

时间:2013-01-21 作者:比尔盖子

我想在一个汉字和一个字母或数字之间加一个空格,使这篇文章更具可读性。

例如:

谷歌与苹果展开的专利大战在2.天之前结束。

谷歌与 苹果展开的专利大战在 2.天之前结束。

但是手动添加空间是一项艰巨的工作。如何自动完成?可能使用CSS?

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

有趣的问题。这可能是specific language file. 这不能在CSS中完成,因为CSS(大部分)是字符不可知的。但使用过滤器和PHP,这是可能的,而且主题如下:

add_filter( \'the_content\', \'t5_chinese_spacing\' );

function t5_chinese_spacing( $content )
{
    return preg_replace(
        \'~([^\\p{Han}]*)(\\p{Han}+)([^\\p{Han}])~imUxu\',
        \'\\1 \\2 \\3\',
        $content
    );
}
请注意,您的内部编码必须是UTF-8才能工作。WordPress也可以使用其他编码,PHP needs UTF-8 为了这个。阅读WordPress Database Charset and Collation Configuration 确保一切都已正确设置。

还要注意,我使用PHP的字符类Han unification 在这里这并不完美,中国作家可能使用的一些标点符号没有包括在内。

结束

相关推荐

Run shortcode before filters

我的用户在注释中发布代码片段。我为此创建了一个快捷码:function post_codigo($atts,$content=\"\"){ return \'<code>\'.$content.\'</code>\'; } add_shortcode(\'codigo\',\'post_codigo\'); 问题是html在打包到代码标记之前会被过滤掉。我想如果我能在过滤器之前运行短代码,那么我可以使用fun