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

Php Zend:从字符串中删除特殊字符,php,zend-framework,Php,Zend Framework,如何从作为字符串的数组键中删除特殊字符?我从美国邮政局收到XML,他们正试图用XML unescaped对TM和商标进行编码。所以当我显示他们的运输成本时;在我创建的选择框中似乎有很多胡言乱语 当我尝试这个的时候- foreach($responseUSPSsimple as $name => $amount) { strip_tags($name); echo $name . '<br />'; } 我明白了- Express Mail&l

如何从作为字符串的数组键中删除特殊字符?我从美国邮政局收到XML,他们正试图用XML unescaped对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 />';
}

我假设您发布的输出显示在浏览器中。根据您的评论,$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 />';
}

如果找不到更适合您的问题的方法,您可以始终使用sledgehammer方法从输出中删除所有xml标记:

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

至少,strip_标记$name;需要为$name=strip\u tags$name$名称=条带标签$name;不起作用。看起来它没有对echo进行任何更改。$name中的任何html标记都可能不会像您看到的html那样显示出来。但事实上,strip\u tags$name对name没有任何作用,因为它从未将结果分配给任何变量。您应该查阅文档,了解该字段的具体内容。此外,还应该显示XML,以便更清楚这是关于什么的。您正在使用SimpleXML吗?感谢Ignacio的回复。这非常有帮助。我希望我能投上一票。至少,strip_标签$name;需要为$name=strip\u tags$name$名称=条带标签$name;不起作用。看起来它没有对echo进行任何更改。$name中的任何html标记都可能不会像您看到的html那样显示出来。但事实上,strip\u tags$name对name没有任何作用,因为它从未将结果分配给任何变量。您应该查阅文档,了解该字段的具体内容。此外,还应该显示XML,以便更清楚这是关于什么的。您正在使用SimpleXML吗?感谢Ignacio的回复。这非常有帮助。我希望我能投赞成票。