Zend:从字符串中删除特殊字符

时间:2012-08-14 21:40:30

标签: php zend-framework

如何从作为字符串的数组键中删除特殊字符?我从美国邮政局收到XML,他们正试图在未转义的XML中编码TM和TradeMarks。所以当我向他们展示运费时;在我创建的选择框中,似乎有很多乱码。

当我尝试这个时 -

 foreach($responseUSPSsimple as $name => $amount) {
        strip_tags($name);
    echo $name . '<br />';
    }

我明白了 -

Express Mail<sup>&reg;</sup>
Express Mail<sup>&reg;</sup> Hold For Pickup
Express Mail<sup>&reg;</sup> Sunday/Holiday Delivery
Express Mail<sup>&reg;</sup> Flat Rate Boxes
Express Mail<sup>&reg;</sup> Flat Rate Boxes Hold For Pickup
Express Mail<sup>&reg;</sup> Sunday/Holiday Delivery Flat Rate Boxes

任何人都可以帮我从该输出中删除 部分吗?

2 个答案:

答案 0 :(得分:1)

我假设您发布的输出显示在浏览器中。根据您$name=strip_tags($name)无效的评论,您的原始字符串已经采用编码格式的html实体,因此strip_tags无法删除此类标记。请尝试以下。

foreach($responseUSPSsimple as $name => $amount) {
    $name = strip_tags(htmlspecialchars_decode($name));
    echo $name . '<br />';
}

答案 1 :(得分:0)

如果你找不到更精确适合你的问题的东西,你总是可以使用大锤方法从输出中删除所有xml标签:

foreach($responseUSPSsimple as $name => $amount) {
    $newName = preg_replace('#<[^>]+>.*?<[^>]+>#', '', $name);
    echo $newName . '<br />';
}

DEMO