Zend:从字符串中删除特殊字符
问题描述:
如何从字符串的数组键中删除特殊字符?我正在接收来自美国邮政服务的XML,他们正在尝试在未转义的XML中对TM和商标进行编码。所以当我显示他们的运费时,看起来好像很多乱码都在我创建的选择框内。Zend:从字符串中删除特殊字符
当我尝试这一点 -
foreach($responseUSPSsimple as $name => $amount) {
strip_tags($name);
echo $name . '<br />';
}
我得到这个 -
Express Mail<sup>®</sup>
Express Mail<sup>®</sup> Hold For Pickup
Express Mail<sup>®</sup> Sunday/Holiday Delivery
Express Mail<sup>®</sup> Flat Rate Boxes
Express Mail<sup>®</sup> Flat Rate Boxes Hold For Pickup
Express Mail<sup>®</sup> Sunday/Holiday Delivery Flat Rate Boxes
任何一个可以帮我删除,可输出部分?
答
我假定您发布的输出显示在浏览器中。根据你的评论,$name=strip_tags($name)
不起作用,你的原始字符串已经在编码格式的HTML实体,因此strip_tags
不能删除这样的标签。尝试下面。
foreach($responseUSPSsimple as $name => $amount) {
$name = strip_tags(htmlspecialchars_decode($name));
echo $name . '<br />';
}
+0
这适用于我的需求。 – ILikeTurtles 2012-08-15 14:58:08
答
如果你不能找到更精确配合你的问题,你总是可以使用大锤方法从输出中删除所有的XML标签:
foreach($responseUSPSsimple as $name => $amount) {
$newName = preg_replace('#<[^>]+>.*?<[^>]+>#', '', $name);
echo $newName . '<br />';
}
在很($ name);'需要'$ name = strip_tags($ name);' – drew010 2012-08-14 21:43:45
$ name = strip_tags($ name);不工作。看起来不像它对回声做任何改变。 – ILikeTurtles 2012-08-14 21:45:44
'$ name'中的任何html标签都可能不会显示,因为您会看到html。但实际上,'strip_tags($ name)'没有任何名称,因为它从未将结果分配给任何变量。 – drew010 2012-08-14 21:51:18