首页 > 解决方案 > 从 Word (.docx) 或 HTM 文件中读取数据并使用 PHP 上传到 mysql DB

问题描述

我正在制作一个多项选择题答案数据库 - 问题和答案也有图像。问答在word文档中。所以我正在尝试读取数据并上传到数据库中。

到目前为止我所做的: 我已将 word 文件转换为 HTM 文件,因此图像现在存储在一个文件夹中,并且 HTM 文件具有该文件的路径和文件名。我的 HTM 文件看起来有点像(这是一个带有选项和其他信息的问题):

<p class=MsoNormal style='line-height:137%;background:white'><span
style='font-size:12.0pt;line-height:137%;color:windowtext'>I.16) </span></p>

<p class=MsoNormal style='line-height:137%;background:white'><span
style='font-size:12.0pt;line-height:137%;color:windowtext'>Q.16) </span></p>

<p class=MsoNormal style='line-height:137%;background:white'><span
style='font-size:12.0pt;line-height:137%;color:windowtext'><img width=419
height=288 id="Picture 2" src="20180808_files/image001.jpg"></span></p>

<p class=MsoNormal style='line-height:137%;background:white'><span
style='font-size:12.0pt;line-height:137%;color:windowtext'>*[1] 13</span></p>

<p class=MsoNormal style='line-height:137%;background:white'><span
style='font-size:12.0pt;line-height:137%;color:windowtext'>[2] 17</span></p>

<p class=MsoNormal style='line-height:137%;background:white'><span
style='font-size:12.0pt;line-height:137%;color:windowtext'>[3] 84</span></p>

<p class=MsoNormal style='line-height:137%;background:white'><span
style='font-size:12.0pt;line-height:137%;color:windowtext'>[4] 98</span></p>

<p class=MsoNormal style='line-height:137%;background:white'><span
style='font-size:12.0pt;line-height:137%;color:windowtext'>[MARKS] 2</span></p>

<p class=MsoNormal style='line-height:137%;background:white'><span
style='font-size:12.0pt;line-height:137%;color:windowtext'>[NEGATIVE MARKS] 0.5</span></p>

<p class=MsoNormal style='line-height:137%;background:white'><span
style='font-size:12.0pt;line-height:137%;color:windowtext'>[TAG] General
Intelligence and Reasoning</span></p>

<p class=MsoNormal style='line-height:137%;background:white'><span
style='font-size:12.0pt;line-height:137%;color:windowtext'>[DIFFICULTY] Easy</span></p>

<p class=MsoNormal style='line-height:137%;background:white'><span
style='font-size:12.0pt;line-height:137%;color:windowtext'>[ANSWER TIME] 0</span></p>

<p class=MsoNormal style='line-height:137%;background:white'><span
style='font-size:12.0pt;line-height:137%;color:windowtext'>[QUESTION TYPE]
Multi_choice</span></p>

<p class=MsoNormal style='line-height:137%;background:white'><span
style='font-size:12.0pt;line-height:137%;color:windowtext'>[SOLUTION]</span></p>

现在这是我的php代码:

<?php
    if(isset($_POST["Upload"]))
    {
        $filename=$_FILES["file"]["tmp_name"];
        if($_FILES["file"]["size"] > 0)
        {
        $file = fopen($filename, "r");
             while (($htmData = fgets($file, 10000)) !== FALSE)
             {
              print_r($htmData);
             }
         fclose($file);
    }
    else
        echo 'Invalid File';
}
?>

我在 print_r 中得到了像这样的干净文档,但现在我只需要在数组中获取问题和答案,以便我可以插入数据库。但不知道如何摆脱 [CAPITAIZED INFOS] 等。

I.16)

Q.16)
/img path


*[1] 13

[2] 17

[3] 84

[4] 98

[MARKS] 2

[NEGATIVE MARKS] 0.5

[TAG] General Intelligence and Reasoning

[DIFFICULTY] Easy

[ANSWER TIME] 0

[QUESTION TYPE] Multi_choice

[SOLUTION]

标签: phphtmldatabasemysqliweb-scraping

解决方案


推荐阅读