在HTML中显示XML - 如何保留换行符?
问题描述:
我正在研究从Microsoft Word .docx
文件获取内容并将它们显示在web page
中的功能。文本呈现很好,但我似乎无法让它显示换行符?在HTML中显示XML - 如何保留换行符?
我的函数的代码如下:
function readDocx($filePath) {
$zip = new ZipArchive;
//Create new ZIP archive
$dataFile = "word/document.xml";
//Open received archive file
if (true === $zip->open($filePath)) {
//if open successful, search for the data file inside the archive
if (($index = $zip ->locateName($dataFile)) !== false) {
//if found, read it to the string
$data = $zip->getFromIndex($index);
//load XML from a string. skips errors and warnings
$xml = new DOMDocument();
$xml->loadXML($data, LIBXML_NOENT | LIBXML_XINCLUDE | LIBXML_NOERROR | LIBXML_NOWARNING);
$xmldata = $xml->saveXML();
$xmldata = str_replace("</w:p>", "^^^^^^" . "
" . "<br>" . "\n" . "<br />" . "<p>" . "%%%", $xmldata);
echo strip_tags($xmldata);
}
$zip->close();
}
//in case of failure, return an empty string
else {
echo "An error has occurred while opening the file - please try again!";
}
}
函数的输出是这样的:
原创 -
“Lorem存有
lorem ipsum“
输出 -
“Lorem存有^^^^^ %%% Lorem存有”
我抬头一看其他的答案上SO
但找不到任何工作为解决问题...任何帮助将不胜感激! (虽然你可能需要更基本的解释,但我仍然是一个新手:D)
答
如果这有助于将来任何人:strip_tags()
删除HTML标签以及PHP的标签,所以当我使用strip_tags )它删除所有<br>
“S等,以及...
由地方换行的插入伪串问题解决了使用strip_tags()
前,然后用str_replace()
重新插入(此时之后为<br>
)。获得的经验:先阅读文档! > <
不确定,但尝试设置preserveWhiteSpace属性 – splash58
nope,没有工作:( – hazel