我认为目前我的困境的原因是不间断的空白区域。
看来一些讨厌的角色从我们的后台系统进入我们的MySQL数据库。因此,我正在尝试使用PHP的XMLWriter运行XML输出,但是这些愚蠢的角色有很多人进入该领域。
它们在 nano 中显示为^K
,在 gedit 中显示为奇怪的方框,当您删除它们时虽然你知道你已经删除了某些内容,但是他们不会在MySQL中手动占用一个空间。
请帮我摆脱它们!
这是目前噩梦的一行(我已经跳过了其余的XMLWriter构建)。
$writer->writeElement("description",$myitem->description);
答案 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);