如何从字符串的数组键中删除特殊字符?我收到来自美国邮政局的XML,他们正在尝试对XML中的TM和商标进行编码。因此,当我显示他们的运费时;看起来好像我创建的选择框中有很多胡言乱语。
当我尝试这个时——
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 />';
}
如果您找不到更适合您的问题的东西,您可以随时使用 sledgehammer 方法从输出中删除所有 xml 标签:
foreach($responseUSPSsimple as $name => $amount) {
$newName = preg_replace('#<[^>]+>.*?<[^>]+>#', '', $name);
echo $newName . '<br />';
}
演示