2013-09-30 14 views
1

我正在使用XPath從我的DomDocument中獲取一些段落。 這工作正常,並返回我所需的數據。如何從DomDocument :: saveHTML中刪除換行符

的問題是,這樣做的時候:

foreach ($paragraph->childNodes as $child) { 
    $node .= $paragraph->ownerDocument->saveHTML($child); 
} 

如果有一個初始換行,這將是keept,我想擺脫所有的換行符的。

我tryed:

$node = trim($node); // Does not work 

然後:

$breaks = array("\r\n", "\n", "\r"); 
$node = str_replace($breaks, " ", $node); // Doesn't work 

我也tryed:

$paragraph->ownerDocument->formatOutput = false; 
$paragraph->ownerDocument->preserveWhiteSpace = false; 

沒有工作。

關於如何擺脫這些換行符的任何想法?

預先感謝您。

編輯

這裏是$節點輸入的例子:

<b>Keywords: </b>marine fungus; sediment; anthranilic acid; <i>Penicillium
 paneum</i>; cytotoxicity 

顯然,問題的性質是
這是什麼特殊字符?

回答

0

顯然,它是造成te linebreak的字符
。我從來沒有聽說過這個特殊的角色,也不知道它是如何產生的。

所以基本上,我所要做的就是取代它。

0

嘗試preg_replace

$string = preg_replace("#<br\s*/?>#i", "", $string); 

或嘗試

preg_replace("/\r|\n/", "", $yourString); 
+0

謝謝你的回答,但不,結果是一樣的 –

+0

我編輯我的答案可能會幫助你。 –

+0

不,切入者不工作,對不起。 –

1
$node = preg_replace(array('/\r/', '/\n/'), '', $node); 

這將這樣的伎倆。

+0

不幸的是,它不工作。 –

+0

您可以分享$ node的樣本輸入嗎?謝謝。 –

+0

當然,我編輯了我的答案。 –