2011-11-15 50 views
2

我認爲我目前困境的原因是非破壞性的空白空間。XML不破壞的空白空間

看起來有些討厭的人物已經從我們的後臺辦公系統找到了我們的MySQL數據庫。因此,我試圖使用PHP的XMLWriter來運行XML輸出,但這些愚蠢的角色​​大量涌入該領域。

他們顯示在納米^K,在的gedit作爲怪異的方形盒子,當你在MySQL中手動刪除他們,他們不佔用空間phsyical,儘管你知道你已經刪除了一些東西。

請幫我擺脫它們!

這裏是目前的噩夢(我跳過了剩下的XMLWriter buildup)。

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

您想在哪裏擺脫它們? – hakre

+0

擺脫MySQL內部將是可怕的,但改變編碼似乎並沒有擺脫他們..我所需要的只是他們被刪除之前,他們輸出到XML文件 –

+0

請添加腳本您建立的XML文件。另外,你知道納米中的^ ^代表什麼嗎?請在nano中鏈接這些字符的規範。 – hakre

回答

0

確定要刪除哪個字符(以及它的二進制序列)後,您可以將其刪除。例如與str_replace

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

您還沒有指定尚未哪些具體的角色你說,所以我還不能指定二進制序列。另外,如果您正在討論一組字符,則過濾可能會有所不同。

0

看起來它們是vertical tabs,ASCII x0B。你應該能夠REPLACE他們在MySQL:

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

但是,the official reference沒有提到具體\v。如果它不起作用,可以使用簡單的str_replace(自PHP 5.2.5起)在PHP中將其刪除:

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