0

現在、txt ファイルから html ファイルを作成し、Web サイトで 2 時間ごとに更新する php コードがあります。それをデータテーブルに変換したいと思います。jquery、データ テーブル、および php を使用して txt ファイルにリンクする簡単な方法はありますか?

これは私が作っているものです: http://live.datatables.net/eduvin/edit#javascript,html,live

私が使用するファイルは、php を使用して HTML に変換する txt ファイルです。PHP はサーバー上で 2 時間ごとに更新されます。これらすべてを jquery データ テーブルに置き換えて、2 時間ごとに更新したいと思います。私が使用している更新プログラムは、Windows Server 2003 の Windows タスク スケジューラです。これは可能ですか? もしそうなら、そうするための最良の方法は何でしょうか。

これは私のPHPコードです:

 <?php
 set_time_limit(0);
 function csv_split($line,$delim=',',$removeQuotes=true) { 
 #$line: the csv line to be split 
 #$delim: the delimiter to split by 
 #$removeQuotes: if this is false, the quotation marks won't be removed from the fields 
 $fields = array(); 
 $fldCount = 0; 
 $inQuotes = false; 
 for ($i = 0; $i < strlen($line); $i++) { 
   if (!isset($fields[$fldCount])) $fields[$fldCount] = ""; 
   $tmp = substr($line,$i,strlen($delim)); 
   if ($tmp === $delim && !$inQuotes) { 
       $fldCount++; 
       $i += strlen($delim)-1; 
   } else if ($fields[$fldCount] == "" && $line[$i] == '"' && !$inQuotes) { 
       if (!$removeQuotes) $fields[$fldCount] .= $line[$i]; 
       $inQuotes = true; 
   } else if ($line[$i] == '"') { 
       if ($line[$i+1] == '"') { 
           $i++; 
           $fields[$fldCount] .= $line[$i]; 
       } else { 
           if (!$removeQuotes) $fields[$fldCount] .= $line[$i]; 
           $inQuotes = false; 
       } 
   } else { 
       $fields[$fldCount] .= $line[$i]; 
   } 
} 
 return $fields; 
} 
$html_body = 'HTML goes here'
$fp=fopen("csv/inventory4.html",'w');
$write=fputs($fp,$html_body,strlen($html_body));
$i=0;
$content = file("webinvt.txt");
foreach($content as $line)
 {
$l=csv_split($line);
if(!strstr($l[11],"SET"))
{
if($i==10)
{
    $tmp = '</table>
   <table width="100%"  border="0" align="center" cellpadding="0" cellspacing="0">      <tbody><tr>
     ';
    $write=fputs($fp,$tmp,strlen($tmp));
    $i=0;
}
$onhand = (int)$l[15];
$committed = (int)$l[16];
$avail = $onhand - $committed;
$wcdate = substr($l[23],4);
$eastdate = substr($l[19],4);

if(strstr($l[1],"DISC"))
{
    $html_body ='<tr style="color:#FF0000 ">
    <td width="12%" >'.$l[0].'</td>
    <td width="30%" >'.$l[1].'</td>
    <td width="8%" >'.$l[12].'</td>
    <td width="8%" >'.$avail.'</td>
    <td width="8%" >'.$l[17].'</td>
    <td width="8%" >'.$l[18].'</td>
    <td width="8%" >'.$eastdate.'</td>
    <td width="8%" >'.$l[21].'</td>
    <td width="8%" >'.$l[22].'</td>
    <td width="8%" >'.$wcdate.'</td>
    </tr>';
}
else
{
    $html_body ='<tr>
    <td width="12%" >'.$l[0].'</td>
    <td width="30%" >'.$l[1].'</td>
    <td width="8%" >'.$l[12].'</td>
    <td width="8%" >'.$avail.'</td>
    <td width="8%" >'.$l[17].'</td>
    <td width="8%" >'.$l[18].'</td>
    <td width="8%" >'.$eastdate.'</td>
    <td width="8%" >'.$l[21].'</td>
    <td width="8%" >'.$l[22].'</td>
    <td width="8%" >'.$wcdate.'</td>
    </tr> 
   ';
}

 $write=fputs($fp,$html_body,strlen($html_body));
 $i++;
}
}

$html_body='<tr>
<td scope="col"></td>
<td scope="col"></td>
<td scope="col"></td>
<td scope="col"></td>
<td scope="col"></td>
<td scope="col"></td>
<td scope="col"></td>
<td scope="col"></td>
<td scope="col"></td>
<td scope="col"></td>
<td scope="col"></td>
 </tr>

 </table>
 </body>
 </html>';

$write=fputs($fp,$html_body,strlen($html_body));

fclose($fp);

 ?>
4

1 に答える 1

0

あなたはこれを間違った方法で見ていると思います。PHP でデータベースを調べて毎回ページをレンダリングしないのはなぜですか? これは、ほとんどの Web サイトが行うことであり、多くの例があります。

中間テキスト ファイルは必要ありません。

データベースを開いて読み取る csv ファイルを開いて読み取る代わりに、php ファイルをそのままにしておくことができます。その後、結果を fields 配列に入れることができるので、残りの php ファイルを変更する必要はありません。

これは、データベースへの接続に関する優れたリファレンスです。

例として、いくつかのコードを次に示します。

$res = $mysqli->query("SELECT field1,field2,field3 FROM items");

$res->data_seek(0);
while ($row = $res->fetch_assoc()) {
    $fields[0] = $row['field1'];
    $fields[1] = $row['field2'];
    $fields[2] = $row['field3'];
}

そんな感じ。

于 2013-10-30T15:44:24.893 に答える