(这个问题是我之前修复的问题(Here)
我发现了一个类似的问题(Here),但解决方案并不是我想要的。
我目前在我的网站上有一个JQuery样式的自动完成搜索引擎,名为(fcbkcomplete)。脚本的原始操作从.txt文件运行,查找手动输入的值并在自动完成结果中输出。但是,我希望脚本从MYSQL数据库中获取值,而不是手动输入.txt文件,因为我最终希望用户可以选择添加自己的值。
因此,我使用此脚本将Javascript调用为.php文件而不是.txt:
//connection details
$getData = mysql_query("SELECT Name FROM tblIngredient");
while($info = mysql_fetch_array($getData))
{
echo "{\"key: value:\";
echo $info['Name'];
echo "key: value:\"";
echo $info['Name'];
echo "}, ";
}
此脚本以正确的格式运行并输出数据:
{"key": "vodka","value": "vodka"}, {"key": "tequila","value": "tequila"},
所以我需要知道如何将这个JSON输出转换为data.txt(这样当数据库表增长时,.txt文件会在脚本运行时自动更新)
这是我网站搜索的最后一步,所以非常感谢任何帮助。
-Matt
答案 0 :(得分:2)
我无法确定你想要保存到这个txt文件的数据位,但我会假设它是这样的:
{"key": "vodka","value": "vodka"}, {"key": "tequila","value": "tequila"},
如果不是,你可以用它代替你想要的东西。
我认为您正在寻找的功能是fopen()
,特别是使用'a'作为第二个参数。
从手册:
'a'仅限写作;将文件指针放在文件的末尾。 如果该文件不存在,请尝试创建它。
这是一个如何使用它的例子(非常简短)。
$string = '{"key": "vodka","value": "vodka"}, {"key": "tequila","value": "tequila"}';
$fp = fopen('somefile.txt', 'a');
fwrite($fp, $string);
fclose($fp);
这里要考虑的一件事(其中包括)是文件需要适当的写访问权限。
答案 1 :(得分:1)
不是将自动完成指向data.txt,为什么不将它指向PHP页面?
$("element").fcbkcomplete({
...
json_url: "fetched.php",
...
});
答案 2 :(得分:1)
您可以结合使用ob_start& ob_get_contents然后将file_put_contents
放入文本文件中<?php
$getData = mysql_query("SELECT Name FROM tblIngredient");
ob_start();
while($info = mysql_fetch_array($getData))
{
echo "{\"key: value:\"";
echo $info['Name'];
echo "key: value:\"";
echo $info['Name'];
echo "}, ";
}
$return = ob_get_contents();
ob_end_clean();
file_put_contents('./data.txt',$return);
?>
或者如果你真的想要保存到文件的有效json那么你在数组上使用json_encode
<?php
$getData = mysql_query("SELECT Name FROM tblIngredient");
while($info = mysql_fetch_array($getData)){
$result[]=$info['Name'];
}
file_put_contents('./data.txt',json_encode($result));
?>
答案 3 :(得分:0)
如果我很清楚你基本上想把这个输出写成一个txt文件,对吧? 在这种情况下,您不应使用echo函数,而应使用fopen和fwrite。看看这个TUTORIAL