我有这段代码,应该从字符串中删除非字母字符:
<?php
$text = 'Random -text! and a word with many ppppps';
$text = mb_ereg_replace('[^\p{L} ]', ' ', $text);
echo $text;
?>
当我在localhost(php 5.6)上运行它时,返回我期望的内容:
Random text and a word with many ppppps
但是在godaddy(php 5.3)上它只返回:
ppppp
似乎与'[^\p{L} ]'
中的正则表达式mb_ereg_replace
有关,但我无法弄清楚是什么。
答案 0 :(得分:1)
根据你的评论,很明显godaddy服务器没有设置为使用UTF8编码。所以,在添加
之后ini_set('default_charset', 'UTF-8');
你可以使用
$text = preg_replace('/[^\p{L}\p{M} ]/u', ' ', $text);
请参阅IDEONE demo,证明它适用于UTF8。