1

如何从作为字符串的数组键中删除特殊字符?我从美国邮政服务处接收 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

谁能帮我删除该输出的部分?

4

2 回答 2

1

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

foreach($responseUSPSsimple as $name => $amount) {
    $name = strip_tags(htmlspecialchars_decode($name));
    echo $name . '<br />';
}
于 2012-08-14T22:09:08.623 回答
0

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

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

演示

于 2012-08-14T22:32:48.613 回答