如何使用PHP

时间:2018-01-17 06:43:11

标签: php html-table preg-match text-files readfile

我有一个PHP代码,用于读取文本文件并允许用户进行搜索,然后将结果显示在包含文件名行号的html表中文件可以处理多行。

所有由10个类别组成的txt文件,其中每个类别包含一些文本。

enter image description here

  

第1类

     

0.74±

     截至2005年的100年中,温度为0.18°C。据IPCC称,“自20世纪中叶以来,全球温度的大部分增加>主要是由于温室气体(温室气体)增加所致。人类。

     

大部分太阳光线穿透大气层到达地球表面。 >这些光线中的大多数位于可见波长(眼睛看到的太阳光)。因此,地球表面在白天被加热。 >地球不能完全吸收太阳能。如果发生这种情况,地球的温度将达到熔点,并且它们的生命终结

     

类别2

     

地球被加热以吸收太阳的热量,然后>地球的表面将吸收的能量能量返回到大气中,并且在没有任何复杂效应的情况下,发生热平衡。在这种情况下,>地球表面温度约为-2.3°C,地球传输的能量是红外线(这与现实相反)。

     

事实上,复杂性,大气层是红外线的一部分;因为>吸收大部分>红外辐射的二氧化碳和水蒸气颗粒,以及未被大气吸收的部分进入空间,以及红外吸收部分的气氛具有>温度升高

预期结果:

enter image description here

我知道我必须在数组中包含这些类别,而系统读取时会读取与数组元素进行比较的文件,一旦找到匹配项,它会在第二行显示类别名称在行号下。

我不知道如何在PHP中写这个想法有人可以帮助我吗?

的代码:

<?php

$result = [];
if(isset($_POST["search"]))
{
    $search =$_POST['name'];
    echo "the word  $search exist: <br><br>";
    foreach(glob($_SERVER['DOCUMENT_ROOT']."/readfiletest/*.txt") as $txts)
    {

        $line = 1;
        $temp   = [];
        $myFileLink = fopen($txts, 'r');
        while(!feof($myFileLink))
        {
            $myFileContents = fgets($myFileLink);
            if( preg_match_all('/('.preg_quote($search,'/').')/i', $myFileContents, $matches))
            {

                $temp['filename'] = basename ($txts);
                foreach($matches[1] as $match)
                {
                    $temp['lines'][] = $line;
                }
            }
            ++$line;
        }
        fclose($myFileLink);

        $result[] = $temp;
    }

    //display the table
    echo '<table class = "minimalistBlack" border=2>';

 $filenameHtml    = '<tr>';
 $lineNumberHtml    = '<tr>';
 foreach ($result as $item)
 {
    $filename = isset($item['filename']) ? $item['filename'] : '';
    $lines = isset($item['lines']) ? implode(',',$item['lines']) : '';
//$filenameHtml .= "<th>$filename</th>";
    $new_filename = str_replace('.txt', '.pdf',$filename);
    $filenameHtml .= !empty($filename) ? "<th><a href ='".$new_filename."'target='_blank'>$filename</a></th>" : ''; // added !empty()
    $lineNumberHtml .= !empty($lines) ? "<td>$lines</td>" : ''; // added !empty()
  }
    $filenameHtml    .= '</tr>';
    $lineNumberHtml  .= '</tr>';

    echo $filenameHtml.$lineNumberHtml;
    echo '</table>';
}
?>

<html>
    <head>
    </head>
    <meta http-equiv="Content-Language" content="ar-sa">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <style>
          #form {
        background: -webkit-linear-gradient(bottom, #CCCCCC, #EEEEEE 175px);
        background: -moz-linear-gradient(bottom, #CCCCCC, #EEEEEE 175px);
        background: linear-gradient(bottom, #CCCCCC, #EEEEEE 175px);
        margin: auto;
        width: 200px;
        height: 200px;
        position: absolute;


        font-family: Tahoma, Geneva, sans-serif;
        font-size: 14px;
        font-style: italic;
        line-height: 24px;
        font-weight: bold;
        color: #09C;
        text-decoration: none;
        border-radius: 10px;
        padding: 10px;
        border: 1px solid #999;
        border: inset 1px solid #333;
        -webkit-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3);
        -moz-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3);
        box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3);
      }

    </style
    <body>
    <div id = "form">
        <form action="index.php" method="post">
          <h1 align =center > Search Form </h1>
          <p>enter your string <input type ="text"  id = "idName"  name="name" /></p>
          <p align =center ><input type ="Submit" name ="search" value= "Search" /></p>
        </form>
    </div>
    </body>
</html>

0 个答案:

没有答案