首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将PHP生成的JSON保存到文本文件

问将PHP生成的JSON保存到文本文件
EN

Stack Overflow用户
提问于 2012-04-18 15:03:40
回答 4查看 2.2K关注 0票数 2

(这个问题是继我以前的问题,也就是修正了(在这里)之后的问题。)

我发现了一个与这个(在这里)类似的问题,但解决方案并不完全是我想要的。

目前,我的网站上有一个JQuery样式的自动完成搜索引擎,名为(fcbkcomplete完整)。脚本的原始操作从一个.txt文件中运行,查找手动输入的值并在自动完成结果中输出它们。但是,我希望脚本从MYSQL数据库中获取值,而不是手动输入到.txt文件中,因为我最终希望用户可以选择添加自己的值。

因此,我将Javascript调用为.php文件,而不是.txt,其中包含以下脚本:

代码语言:javascript
复制
//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 "}, ";
 }

此脚本以正确的格式工作并输出数据:

代码语言:javascript
复制
{"key": "vodka","value": "vodka"}, {"key": "tequila","value": "tequila"},

,因此我需要知道如何将这个JSON输出转换为data.txt (因此随着数据库表的增长,.txt文件在运行脚本时会自动更新)

这是在我的网站上搜索的最后一步,所以任何帮助都是非常感谢的。

-Matt

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-04-18 15:13:36

我不知道要将哪些数据保存到这个txt文件中,但我假设如下所示:

代码语言:javascript
复制
{"key": "vodka","value": "vodka"}, {"key": "tequila","value": "tequila"},

如果不是,你可以用它来代替你想要的。

我认为您要寻找的函数是fopen(),特别使用'a‘作为第二个参数。

从手册中:

'a'仅用于写入;将文件指针放置在文件的末尾。如果文件不存在,请尝试创建它。

下面是一个如何使用它的例子(非常简短的例子)。

代码语言:javascript
复制
$string = '{"key": "vodka","value": "vodka"}, {"key": "tequila","value": "tequila"}';
$fp = fopen('somefile.txt', 'a');
fwrite($fp, $string);
fclose($fp);

这里需要考虑的一件事情是,文件需要适当的权限才能进行写访问。

票数 2
EN

Stack Overflow用户

发布于 2012-04-18 15:12:29

与其将自动完成指向data.txt,不如直接将其指向您的PHP页面?

代码语言:javascript
复制
$("element").fcbkcomplete({
    ...
    json_url: "fetched.php",
    ...
});
票数 1
EN

Stack Overflow用户

发布于 2012-04-18 15:17:44

您可以使用开始 & 目录的组合,然后将文本文件与目录放在一起

代码语言:javascript
复制
<?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,则在数组上使用编码,编码。

代码语言:javascript
复制
<?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));
?>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10212246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档