PHP DOM 文档忽略追加 nodeValue 的空格
PHP DOM Document ignore whitespaces appending nodeValue
我正在通过 PHP 和 DOM 使用 MS Office Word 文档。我正在向我的文档添加段落。现在我必须将字符串的一部分设为粗体(它来自数据库,我无法更改它)。像这样:
The part of string is bold really.
我的工作:
if(strpos($input, $search)) {
$splitted = explode($search, $input);
$t1 = new DOMElement('t', " ".$splitted[0]." ", $this->ns);
$t2 = new DOMElement('t', " ". $search ." ", $this->ns);
$t3 = new DOMElement('t', " ".$splitted[1]." ", $this->ns);
}
然后我将此元素添加到文档中。但是我得到:
The part of string isboldreally.
它删除了 nodeValue 前后的空格。我试图强制添加空格(如上面的代码所示)。没有任何帮助。我能做什么?
尝试用“”字符串替换字符串中的空格。这相当于 HTML 相当于 "space" 可以这么说。
所以代替:
$t1 = new DOMElement('t', " ".$splitted[0]." ", $this->ns);
做:
$t1 = new DOMElement('t', " ".$splitted[0]." ", $this->ns);
您可以用
替换实际的 space 个字符,这不会换行,但会添加 space.
if(strpos($input, $search)) {
$splitted = explode($search, $input);
$t1 = new DOMElement('t', ' '.$splitted[0].' ', $this->ns);
$t2 = new DOMElement('t', ' '. $search .' ', $this->ns);
$t3 = new DOMElement('t', ' '.$splitted[1].' ', $this->ns);
}
this 问题的回答解决了问题
解决方法是:
$t1 = new DOMElement('t', $splitted[0], $this->ns);
$t2 = new DOMElement('t', "\xC2\xA0". $search ."\xC2\xA0", $this->ns);
$t3 = new DOMElement('t', $splitted[1], $this->ns);
因为
是N个HTML实体。要添加 UTF-8 编码 non_breakable_space 我们必须使用 "\xC2\xA0"
我正在通过 PHP 和 DOM 使用 MS Office Word 文档。我正在向我的文档添加段落。现在我必须将字符串的一部分设为粗体(它来自数据库,我无法更改它)。像这样:
The part of string is bold really.
我的工作:
if(strpos($input, $search)) {
$splitted = explode($search, $input);
$t1 = new DOMElement('t', " ".$splitted[0]." ", $this->ns);
$t2 = new DOMElement('t', " ". $search ." ", $this->ns);
$t3 = new DOMElement('t', " ".$splitted[1]." ", $this->ns);
}
然后我将此元素添加到文档中。但是我得到:
The part of string isboldreally.
它删除了 nodeValue 前后的空格。我试图强制添加空格(如上面的代码所示)。没有任何帮助。我能做什么?
尝试用“”字符串替换字符串中的空格。这相当于 HTML 相当于 "space" 可以这么说。
所以代替:
$t1 = new DOMElement('t', " ".$splitted[0]." ", $this->ns);
做:
$t1 = new DOMElement('t', " ".$splitted[0]." ", $this->ns);
您可以用
替换实际的 space 个字符,这不会换行,但会添加 space.
if(strpos($input, $search)) {
$splitted = explode($search, $input);
$t1 = new DOMElement('t', ' '.$splitted[0].' ', $this->ns);
$t2 = new DOMElement('t', ' '. $search .' ', $this->ns);
$t3 = new DOMElement('t', ' '.$splitted[1].' ', $this->ns);
}
this 问题的回答解决了问题
解决方法是:
$t1 = new DOMElement('t', $splitted[0], $this->ns);
$t2 = new DOMElement('t', "\xC2\xA0". $search ."\xC2\xA0", $this->ns);
$t3 = new DOMElement('t', $splitted[1], $this->ns);
因为
是N个HTML实体。要添加 UTF-8 编码 non_breakable_space 我们必须使用 "\xC2\xA0"