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


Zend: Remove Special Characters from String

如何从字符串的数组键中删除特殊字符?我收到来自美国邮政局的XML,他们正在尝试对XML中的TM和商标进行编码。因此,当我显示他们的运费时;看起来好像我创建的选择框中有很多胡言乱语。

当我尝试这个时——

 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

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

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

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

如果您找不到更适合您的问题的东西,您可以随时使用 sledgehammer 方法从输出中删除所有 xml 标签:

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

演示