【发布时间】:2011-12-27 13:33:54
【问题描述】:
我正在尝试删除 PHP 中除有效字母(来自任何语言)之外的所有内容。我一直在用这个:
$content=preg_replace('/[^\pL\p{Zs}]/u', '', $content);
但它非常缓慢。花费的时间大约是以下的 30 倍:
$content=preg_replace('/[^a-z\s]/', '', $content);
我正在处理大量数据,因此使用慢速方法确实不可行。
有更快的方法吗?
【问题讨论】:
-
PHP 中唯一的替代方案是
mb_ereg_replace,但这更慢。 (iconv扩展不提供字母过滤,并且不知道其他任何内容。) -
您是否尝试过添加
+,例如:/[^\pL\p{Zs}]+/u?它的性能应该会好一些。