将数据从PHP文件写入json文件

use*_*326 6 javascript ajax json

我有一个test.php页面,显示三个有3个"添加链接"按钮,点击用户看到一个弹出窗口的按钮.在窗口中,他添加了链接.添加链接后,基页将从"添加链接"按钮更改为包含新链接的超链接.现在,我必须使用ajax调用将我从用户收到的新链接从test.php传递给links.php.Links.php必须有一个JSON代码才能将链接写入另一个名为first.json的文件.first.jason将具有变量和链接的键值对.我必须稍后从.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>
Run Code Online (Sandbox Code Playgroud)

下面是links.php的代码,它接收test.php通过ajax调用发送的值(即链接):

<?php
include 'test.php';
$p=$_REQUEST['q'];
?>
Run Code Online (Sandbox Code Playgroud)

我可以使用json_encode写入json文件.现在我必须从.json文件中读取链接,将其与相应的变量关联并保存回来.我该怎么做?

D-R*_*ock 25

写json:

file_put_contents('filename.json', json_encode($p));
Run Code Online (Sandbox Code Playgroud)

要阅读json:

$p = json_decode(file_get_contents('filename.json'));
Run Code Online (Sandbox Code Playgroud)

显然,这根本没有错误检查.


小智 1

如果您已经创建了 json,那么您可以简单地执行以下操作:

fwrite("yourjson.json",json_encode($yourvariablewithdata))
Run Code Online (Sandbox Code Playgroud)

如果您还没有创建 json 文件,那么您可以使用 fopen 函数创建它。详情请参阅http://www.php.net/manual/es/function.fopen.php