1

我有一个读取文本文件内容的自动填充搜索(该文本文件必须以正确的方式格式化,否则搜索不起作用)。现在我以一种相当冗长的方式来做这件事,因为我需要在文件的开头和结尾加上方括号。

从数据库中获取数据的 PHP 脚本:

$getData = mysql_query("SELECT Name FROM tblIngredient"); 

 while($info = mysql_fetch_array($getData)) 
 {
    $string = '{"key": "'.$info['Name'].'", "value": "'.$info['Name'].'"}, ';
    $fp = fopen('data_old.txt', 'a');
    fwrite($fp, $string);
    fclose($fp);
 }

第二个 php 脚本打开 data_old.txt 并在开头写上“[”,在结尾写上“]”,然后将其保存为 data.txt:

$string1 = '[' . file_get_contents('data_old.txt') . ']';
$fp = fopen('data.txt', 'a');
fwrite($fp, $string1);
fclose($fp);

这会将数据保存为以下格式:(文件开头)

[{"key": "vodka", "value": "vodka"}, {"key": "tequila", "value": "tequila"}, {

(文件结束)

{"key": "brandy", "value": "brandy"}, {"key": "beer", "value": "beer"}, ]

我的问题是文件末尾有一个逗号和空格:},],我需要它看起来像这样:}]

我一直在谷歌搜索并尝试过这个无济于事

(我需要代码来截断 data.txt 文件的最后 2 个字符并再次写入)

任何帮助表示赞赏

-马特

编辑2::

脚本1:

$getData = mysql_query("SELECT Name FROM tblIndredient"); 

 while($info = mysql_fetch_array($getData)) 
 {
    $string = ', {"key": "'.$info['Name'].'", "value": "'.$info['Name'].'"}';
    $fp = fopen('data.txt', 'a');
    fwrite($fp, $string);
    fclose($fp);
 }

    $content = file_get_contents('data.txt');
    $content = '[' . ltrim('[, ', $content);
    file_put_contents('data.txt');

脚本2:

    $string1 = '['. file_get_contents('data.txt') .']';
    $fp = fopen('data.txt', 'a');
    fwrite($fp, $string1);
    fclose($fp);
4

2 回答 2

0
$string1 = '[' . file_get_contents('data_old.txt');
$fp = fopen('data.txt', 'a');
fwrite($fp, $string1);
fclose($fp);

$files = fopen('data.txt', 'w+');
$content = fread($files, filesize('data.txt'));
$content = substr_replace($content ,"", -2);
$content .= ']';
fwrite($files, $content);
fclose($files);
于 2012-04-19T16:33:09.140 回答
0

更改此行

$string = '{"key": "'.$info['Name'].'", "value": "'.$info['Name'].'"}, ';

$string = ', {"key": "'.$info['Name'].'", "value": "'.$info['Name'].'"}';

并改变这个

$string1 = '['。file_get_contents('data.txt') .']';

$string1 = file_get_contents('data.txt');
$string1 = '[' . ltrim($string1, ', ') . ']';

这有帮助吗?

于 2012-04-20T00:16:52.677 回答