0

我有一个 php 代码,它目前从 txt 文件创建一个 html 文件,并在我的网站上每两个小时更新一次。我想将其转换为数据表。有没有一种简单的方法可以使用 jquery、数据表和 php 链接到 txt 文件?

这就是我正在做的:http: //live.datatables.net/eduvin/edit#javascript,html,live

我使用的文件是一个 txt 文件,它使用 php 转换为 HTML。PHP 每两个小时在服务器上更新一次。我想用 jquery 数据表替换所有这些,并每两个小时更新一次。我使用的更新程序是Windows server 2003中的windows task scheduler。这可能吗?如果是这样,最好的方法是什么。

这是我的 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 每次都查看数据库并呈现页面?这是大多数网站所做的,并且有很多例子。

无需中间文本文件。

php 文件可以保持原样,而不是打开和读取 csv 文件,而是打开并读取数据库。然后您可以将结果放入 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 回答