我使用html标签创建了.doc文件,其中包含HTML表单元素,如Textbox,checkbox,radiobutton,dropdown和hidden fields。 打开文档时,这些显示正确。
我想解析'另存为' doc文件也使用php。请帮帮我怎样才能解决这个问题?
这是我的doc文件解析代码:
function parseWord($userDoc)
{
$fileHandle = fopen($userDoc, "r");
$line = @fread($fileHandle, filesize($userDoc));
$lines = explode(chr(0x0D),$line);
$outtext = "";
foreach($lines as $thisline)
{
$pos = strpos($thisline, chr(0x00));
if (($pos !== FALSE)||(strlen($thisline)==0))
{
} else {
$outtext .= $thisline." ";
}
}
if(trim($outtext)==""){
$outtext ="";
//echo "<br> UTF ";
$filename = $userDoc;
if ( file_exists($filename) ) {
$outtext ="";
if ( ($fh = fopen($filename, 'r')) !== false ) {
$headers = fread($fh, 0xA00);
# 1 = (ord(n)*1) ; Document has from 0 to 255 characters
$n1 = ( ord($headers[0x21C]) - 1 );
# 1 = ((ord(n)-8)*256) ; Document has from 256 to 63743 characters
$n2 = ( ( ord($headers[0x21D]) - 8 ) * 256 );
# 1 = ((ord(n)*256)*256) ; Document has from 63744 to 16775423 characters
$n3 = ( ( ord($headers[0x21E]) * 256 ) * 256 );
# (((ord(n)*256)*256)*256) ; Document has from 16775424 to 4294965504 characters
$n4 = ( ( ( ord($headers[0x21F]) * 256 ) * 256 ) * 256 );
# Total length of text in the document
$textLength = ($n1 + $n2 + $n3 + $n4);
$extracted_plaintext = fread($fh, $textLength);
# if you want the plain text with no formatting, do this
//echo $extracted_plaintext;
$outtext .= $extracted_plaintext;
# if you want to see your paragraphs in a web page, do this
//echo nl2br($extracted_plaintext);
}
fclose($fh);
}
}
$outtext = preg_replace("/[^a-zA-Z0-9\s\,\.\-\n\r\t@\/\_\(\)]/","",$outtext);
return $outtext;
}
$userDoc = "cv.doc";
$text = parseWord($userDoc);
echo $text;
提前致谢...
答案 0 :(得分:0)
我使用html标签
创建了.doc文件
不,您创建了一个HTML文件并为其指定了以.doc
结尾的文件名当您从MSWord保存文件时,它使用专有格式(实际上是多种嵌套格式),而不是HTML。当您提交最初创建的文件时,MSWord会识别其HTML并即时翻译它。有很多方法可以解决这个问题,但在你能够充分利用它们之前,你还有很长的路要走。
现在,您最好的做法是考虑为什么需要在MSWord和PHP中处理文件以及您可能使用的其他格式的问题。
答案 1 :(得分:0)