2

我正在使用 XPath 从我的 DomDocument 中获取一些段落。这工作正常并返回我所需的数据。

问题是在做的时候:

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

如果有初始换行符,这将被保留,我想摆脱所有换行符。

我试过了:

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

然后:

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

我也试过:

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

不工作。

关于如何摆脱那些换行符的任何想法?

先感谢您。

编辑

这是 $node 输入的示例:

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

显然,有问题的字符是
这个特殊字符是什么?

4

3 回答 3

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

这会成功的。

于 2013-09-30T10:33:49.417 回答
1

显然,
是导致换行符的字符。我从未听说过这个特殊角色,不知道它是如何产生的。

所以基本上,我要做的就是更换它。

于 2013-10-02T06:49:08.727 回答
1

尝试preg_replace

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

或尝试

preg_replace( "/\r|\n/", "", $yourString);
于 2013-09-30T10:26:57.800 回答