我正在通过PHP和DOM使用MS Office Word文档。我在我的文档中添加了段落。现在我必须使字符串的一部分变为粗体(它变成了数据库而我无法更改它)。像这样:
字符串的一部分是粗体。
我的所作所为:
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);
}
在我将此元素添加到文档之后。我想知道:
字符串的一部分是粗体。
它删除nodeValue之前和之后的空格。我试图强制添加空格(如上面的代码所示)。什么都没有帮助。我该怎么办?
答案 0 :(得分:0)
您可以使用
替换实际的空格字符,但不会破坏该行,但会增加空格。
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);
}
答案 1 :(得分:0)
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"
答案 2 :(得分:-1)
尝试用“”字符串替换字符串中的空格。对于“空间”来说,这是HTML等价物。
所以代替:
$t1 = new DOMElement('t', " ".$splitted[0]." ", $this->ns);
做的:
$t1 = new DOMElement('t', " ".$splitted[0]." ", $this->ns);