我正在尝试使用doc
从php
文件中检索文本。这是我正在使用的代码:
function read_doc() {
foreach (glob("*.doc") as $filename) {
$file_handle = fopen($filename, "r"); //open the file
$stream_text = @fread($file_handle, filesize($filename));
$stream_line = explode(chr(0x0D),$stream_text);
$output_text = "";
foreach($stream_line as $single_line){
$line_pos = strpos($single_line, chr(0x00));
if(($line_pos !== FALSE) || (strlen($single_line)==0)){
$output_text .= "";
}else{
$output_text .= $single_line." ";
}
}
$output_text = preg_replace("/[^a-zA-Z0-9\s\,\.\-\n\r\t@\/\_\(\)]/", "", $output_text);
echo $output_text;
}
}
我得到了这个结果:
HYPERLINK mailtoAnother@email.us Another@email.us Y,dXiJ(x(I_TS1EZBmU / xYy5g / GMGeD3Vqq8K)fw9 xrxwrTZaGy8IjbRcXI u3KGnD1NIBs RuKV.ELM2fiVvlu8zH(W uV4(Tn 7_m-UBww_8(/ 0hFL)7iAs),Qg20ppf DU4p MDBJlC5 2FhsFYn3E6945Z5k8Fmw-dznZxJZp / P,)KQk5qpN8KGbe Sd17 paSR 6Q
是否有一些解决方案可以清除此问题,因此只返回string
文件中的doc
个文字?
答案 0 :(得分:1)
使用vanilla php很难处理Doc文件。
使用https://github.com/alchemy-fr/PHP-Unoconv我做了你需要的东西。它将实际检测不同的格式,并为您生成一个漂亮的xml。可以找到文档here
如果你搜索" unoconv"网上也会有很多例子。 +" php"
答案 1 :(得分:0)
解析MS Word文档很难处理代码。
这是因为MS将大量数据嵌入到它们的格式中,当你回显出已解析的单词/段落时,它看起来就像是乱七八糟。
我建议您尝试使用包库(来自packagist)来帮助您解决此问题Word-Doc-Parser
如果您的系统上有composer
,可以通过static inline void init_perfcounters(int32_t do_reset, int32_t enable_divider)
{
// in general enable all counters (including cycle counter)
int32_t value = 1;
// peform reset:
if (do_reset) {
value |= 2; // reset all counters to zero.
value |= 4; // reset cycle counter to zero.
}
if (enable_divider)
value |= 8; // enable "by 64" divider for CCNT.
value |= 16;
// program the performance-counter control-register:
asm volatile ("MCR p15, 0, %0, c9, c12, 0\t\n" :: "r"(value));
// enable all counters:
asm volatile ("MCR p15, 0, %0, c9, c12, 1\t\n" :: "r"(0x8000000f));
// clear overflows:
asm volatile ("MCR p15, 0, %0, c9, c12, 3\t\n" :: "r"(0x8000000f));
}
轻松安装。