XML不打破空白区域

时间:2011-11-15 11:40:05

标签: php mysql xml whitespace xmlwriter

我认为目前我的困境的原因是不间断的空白区域。

看来一些讨厌的角色从我们的后台系统进入我们的MySQL数据库。因此,我正在尝试使用PHP的XMLWriter运行XML输出,但是这些愚蠢的角色​​有很多人进入该领域。

它们在 nano 中显示为^K,在 gedit 中显示为奇怪的方框,当您删除它们时虽然你知道你已经删除了某些内容,但是他们不会在MySQL中手动占用一个空间。

请帮我摆脱它们!

这是目前噩梦的一行(我已经跳过了其余的XMLWriter构建)。

$writer->writeElement("description",$myitem->description);

2 个答案:

答案 0 :(得分:0)

在确定要删除的特定字符(以及它的二进制序列)之后,您可以将其删除。例如str_replace

$binSequence = "..."; // the binary representation of the character in question
$descriptionFiltered = str_replace($binSequence, '', $myitem->description);
$writer->writeElement("description", $descriptionFiltered);

你还没有说明你正在谈论哪个具体角色,所以我还不能指定二进制序列。此外,如果您正在谈论一组字符,过滤可能会有所不同。

答案 1 :(得分:0)

似乎它们是vertical tabs,ASCII x0B。您应该能够在MySQL中REPLACE

SELECT REPLACE('\v', '', `value`) WHERE key = 'foo';

但是,the official reference没有明确提及\v。如果它不起作用,你可以使用简单的str_replace在PHP中删除它(从PHP 5.2.5开始):

str_replace("\v", '', $result);