Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP从Docx获取文本而不丢失HTML格式_Php_Html_Css_Docx - Fatal编程技术网

使用PHP从Docx获取文本而不丢失HTML格式

使用PHP从Docx获取文本而不丢失HTML格式,php,html,css,docx,Php,Html,Css,Docx,我有一个Docx文件。我可以使用PHP代码从中导出数据,但数据会丢失HTML格式。我怎样才能保持完整并提取数据 到目前为止,我的PHP代码如下: <?php function read_file_docx($filename){ $striped_content = ''; $content = ''; if(!$filename || !file_exists($filename)) return false; $zi

我有一个Docx文件。我可以使用PHP代码从中导出数据,但数据会丢失HTML格式。我怎样才能保持完整并提取数据

到目前为止,我的PHP代码如下:

<?php  
 function read_file_docx($filename){  
      $striped_content = '';  
      $content = '';  
      if(!$filename || !file_exists($filename)) return false;  
      $zip = zip_open($filename);  
      if (!$zip || is_numeric($zip)) return false;  
      while ($zip_entry = zip_read($zip)) {  
      if (zip_entry_open($zip, $zip_entry) == FALSE) continue;  
      if (zip_entry_name($zip_entry) != "word/document.xml") continue;  
      $content .= zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));  
      zip_entry_close($zip_entry);  
      }// end while  
      zip_close($zip);  
      $content = str_replace('</w:r></w:p></w:tc><w:tc>', " ", $content);  
      $content = str_replace('</w:r></w:p>', "\r\n", $content);  
      $striped_content = strip_tags($content);  
      return $striped_content;  
 }  
 $filename = "sample.docx";// or /var/www/html/file.docx  
 $content = read_file_docx($filename);  
 if($content !== false) {  
      echo nl2br($content);  
 }  
  else {  
      echo 'Couldn\'t the file. Please check that file.';  
           }  
 ?> 

有关更多详细信息,请参见此图:


我如何才能实现同样的效果,以便在
$content
变量中按原样获取文本?

当前,$content变量实际包含什么?(不仅仅是您在浏览器屏幕上看到的内容,而是实际的原始内容。)。可能是HTML,但没有相关的样式表信息,例如,这将有助于布局。HTML通常也需要CSS来创建正确的表示。当您保存HTML并将其加载到浏览器中时,是否也会遇到同样的问题?如果为true,则您可以将空格替换为以更正格式如果您看到我的代码它echo
$content
,它应该使用html属性进行提取,因为当我从word复制它并只是粘贴到文本编辑器中时,它是原样的,请参见附件图像,您可以更新我的代码吗?如果可能,我将尝试使用html。即使通过剪贴板将部分复制到HTML编辑器,并且在复制过程中更改为HTML,这也并不意味着DOCX文件中存在HTML。据我所知,它是XML。“如果你看到我的代码,它会回显$content”……是的,但是当你在浏览器中查看它时,你只会看到文本,因为浏览器会将该内容中的任何HTML都视为标记,并使用它来呈现页面。因此,我们不能看到一切。这就是为什么我要求您向我们展示原始内容,而不是呈现的内容。请在你的问题中粘贴(一个样本)。(您可以使用浏览器的“查看源代码”功能来查找。)当前,$content变量实际包含哪些内容?(不仅仅是您在浏览器屏幕上看到的内容,而是实际的原始内容。)。可能是HTML,但没有相关的样式表信息,例如,这将有助于布局。HTML通常也需要CSS来创建正确的表示。当您保存HTML并将其加载到浏览器中时,是否也会遇到同样的问题?如果为true,则您可以将空格替换为以更正格式如果您看到我的代码它echo
$content
,它应该使用html属性进行提取,因为当我从word复制它并只是粘贴到文本编辑器中时,它是原样的,请参见附件图像,您可以更新我的代码吗?如果可能,我将尝试使用html。即使通过剪贴板将部分复制到HTML编辑器,并且在复制过程中更改为HTML,这也并不意味着DOCX文件中存在HTML。据我所知,它是XML。“如果你看到我的代码,它会回显$content”……是的,但是当你在浏览器中查看它时,你只会看到文本,因为浏览器会将该内容中的任何HTML都视为标记,并使用它来呈现页面。因此,我们不能看到一切。这就是为什么我要求您向我们展示原始内容,而不是呈现的内容。请在你的问题中粘贴(一个样本)。(您可以使用浏览器的“查看源”功能查找它。)