我有一个自动填充搜索,它读取文本文件的内容(此文本文件必须以正确的方式格式化或搜索不起作用)。现在我以一种相当漫长的方式做这件事,因为我需要在文件的开头和结尾放置方括号。
从数据库获取数据的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);
}
打开data_old.txt的第二个php脚本,并在开头用“[”和最后的“]”写入,然后将其保存为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"}, ]
我的问题是,在文件末尾有一个逗号和空格:},]我需要它看起来像这样:}]
我一直在谷歌搜索并尝试this无济于事
(我需要代码来截断data.txt文件的最后两个字符并再次写入)
感谢任何帮助
-Matt
EDIT2 ::
SCRIPT1:
$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');
SCRIPT2:
$string1 = '['. file_get_contents('data.txt') .']';
$fp = fopen('data.txt', 'a');
fwrite($fp, $string1);
fclose($fp);
答案 0 :(得分: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);
答案 1 :(得分:0)
$components = array()
while($info = mysql_fetch_array($getData))
{
$components[] = '{"key": "'.$info['Name'].'", "value": "'.$info['Name'].'"}';
$fp = fopen('data_old.txt', 'a');
fwrite($fp, $string);
fclose($fp);
}
$string = implode(',', $components);
// Now write the string...
答案 2 :(得分:0)
更改此行
$ string ='{“key”:“'。$ info ['Name']。'”,“value”: “'。$ info ['姓名']。'”},';
到
$ string =',{“key”:“'。$ info ['Name']。'”,“value”: “” $信息[ '名称'] '“}';
并更改此
$ string1 ='['。 file_get_contents('data.txt')。']';
到
$string1 = file_get_contents('data.txt');
$string1 = '[' . ltrim($string1, ', ') . ']';
有帮助吗?