2012-04-04 54 views
0

首先,字符串正在从XML文件中提取。str_replace的问题

有,我试图取代一个特殊字符: '£'

当我使用str_replace函数像这样:

$ability1 = str_replace("£", "", $ability); 

这是什么的var_dump显示:

string(138) "Argothian Pixies can't be blocked by artifact creatures.�Prevent all damage that would be dealt to Argothian Pixies by artifact creatures." 

一旦$ ability1被传递,wordpress将其插入帖子中。这是结果。

Argothian Pixies can’t be blocked by artifact creatures. 

删除 字符后的所有内容。

为什么当£应该是“”时,将£改变为 。我不太确定我丢失的是什么

回答

1

也许你的字符串是UTF-8? PHP。你将不得不这样做:

$ability1 = utf8_decode($ability); 
$ability1 = preg_replace("/[£ ]/","", $ability1); 
$ability1 = utf8_encode($ability1); 
+1

是的,就是这样。我前几天读过那篇文章,但它已经滑了我的头脑,哈哈。 preg_replace导致它删除所有内容,只留下特殊字符。结束使用: $ ability1 = utf8_decode($ ability); $ ability1 = str_replace(“£”,“”,$ ability1); $ ability1 = utf8_encode($ ability1); – 2012-04-04 13:30:15

+0

对不起。表达中有一个“不”(^)。 – fragmentedreality 2012-04-04 13:47:55

+0

**使用警告:**这段代码引入了数据丢失。 – hakre 2012-06-15 16:18:37

1

XML文件是如何编码的?我怀疑它可能是UTF-8。在这种情况下,你需要看到一个函数,如utf_decode()在你的代码中正确处理它(假设你的代码是ANSI)