从PHP文件将数据写入json文件
我有一个test.php页面,显示三个有3个“添加链接”按钮,点击按钮后,用户看到一个弹出窗口。在窗口中他添加了链接。添加链接后,基页将从“添加链接”按钮更改为新链接的超链接。现在,我必须使用ajax调用将我从test.php用户接收到的新链接传递给links.php。 Links.php必须有一个JSON代码才能将链接写入另一个名为first.json的文件。 first.jason将有变量和链接的关键值对。我将不得不稍后从.json文件中检索值并重建为一个数组,然后更新相应的变量并将其保存回去。从PHP文件将数据写入json文件
我到目前为止,设法从test.php获得新的链接,并能够通过ajax调用发送相同的links.php。我也能够显示我收到的链接并验证了相同的链接。现在,我想将链接复制到.json文件中作为关键值对。我对json很陌生,无法弄清楚如何去做。我的变量$ p,在links.php中有链接。
同样的任何指针都会有所帮助。谢谢。
下面是我在test.php的代码:
<!DOCTYPE html>
<html>
<body>
<div id="demos1">
<button id="demo1" onclick="Link1()">Add Link-1</button>
<br>
</div>
<div id="demos2">
<button id="demo2" onclick="Link2()">Add Link-2</button>
<br>
</div>
<div id="demos3">
<button id="demo3" onclick="Link3()">Add Link-3</button>
<br>
</div>
<div id="txtHint"></div>
<script>
function Link1()
{
var demo1 = document.getElementById('demo1');
var demos1 = document.getElementById('demos1');
var value1 = prompt("Please Enter the Link");
var link1 = document.createElement('a');
link1.setAttribute('href', value1);
link1.innerHTML = "New Link1";
demo1.parentNode.removeChild(demo1);
demos1.appendChild(link1);
sendlink(value1);
}
function Link2()
{
var demo2 = document.getElementById('demo2');
var demos2 = document.getElementById('demos2');
var value2 = prompt("Please Enter the Link");
var link2 = document.createElement('a');
link2.setAttribute('href', value2);
link2.innerHTML = "New Link2";
demo2.parentNode.removeChild(demo2);
demos2.appendChild(link2);
sendlink(value2);
}
function Link3()
{
var demo3 = document.getElementById('demo3');
var demos3 = document.getElementById('demos3');
var value3 = prompt("Please Enter the Link");
var link3 = document.createElement('a');
link3.setAttribute('href', value3);
link3.innerHTML = "New Link3";
demo3.parentNode.removeChild(demo3);
demos3.appendChild(link3);
sendlink(value3);
}
function sendlink(str)
{
if (str.length==0)
{
document.getElementById("txtHint").innerHTML="hello";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","links.php?q="+str,true);
xmlhttp.send();
}
</script>
</body>
</html>
下面是接收值links.php的代码(即,连接)的test.php的发送通过AJAX调用:
<?php
include 'test.php';
$p=$_REQUEST['q'];
?>
我能够使用json_encode写入json文件。现在我必须从.json文件读取链接,将它与相应的变量相关联并保存。我将如何去做这件事?
如果您已经创建了JSON已经,那么你可以简单地这样做:
fwrite("yourjson.json",json_encode($yourvariablewithdata))
如果您尚未创建JSON文件,那么你可以用fopen函数创建它。查看详情http://www.php.net/manual/es/function.fopen.php
我可以使用json_encode写入json文件。现在我必须从.json文件读取链接,将它与相应的变量相关联并保存。我将如何去做这件事? – user2521326
要编写JSON:
file_put_contents('filename.json', json_encode($p));
要读取JSON:
$p = json_decode(file_get_contents('filename.json'));
显然,这没有错误检查都不过。
您可以随时JSON.stringify的JSON在客户端使用jQuery,就像这样:
var dataForJson = JSON.stringify(your_aray);
然后在服务器端把它写成是(无需json_encode):
$jsondata = $_POST['dataForJson'];
$writeJson = file_put_contents('data_en.json', $jsondata);
如果要插入下面一个在JSON文件中的数据是有用的
function exportToJson() {
mysql_connect("localhost", "root", "");
mysql_select_db("krasimir_benchmark");
$res = mysql_query("SELECT * FROM users ORDER BY id");
$records = array();
while($obj = mysql_fetch_object($res)) {
$records []= $obj;
}
file_put_contents("data.json", json_encode($records));
}
显示你的代码。 – msanford
你想要做PHP文件I/O吗?这听起来像你已经成功完成了所有的JavaScript和Ajax。这个链接应该让你朝着这个方向前进:http://www.tutorialspoint.com/php/php_files.htm – MaxPRafferty