2015-09-07 106 views
0

我正在研究从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>", "^^^^^^" . "&#10" . "<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)

+0

不确定,但尝试设置preserveWhiteSpace属性 – splash58

+0

nope,没有工作:( – hazel

回答

0

如果这有助于将来任何人:strip_tags()删除HTML标签以及PHP的标签,所以当我使用strip_tags )它删除所有<br>“S等,以及...

由地方换行的插入伪串问题解决了使用strip_tags()前,然后用str_replace()重新插入(此时之后为<br>)。获得的经验:先阅读文档! > <

相关问题