本文介绍: php读取整个json文件后在最后的]位置写入新获取到的数据,这里用到了php中fwrite函数,首先php打开json文件。逻辑是html通过ajax提交数据给php,php收到新数据后打开服务器的sql.json文件,json文件内容为。//data: {s:dataString}, //传输的数据 在验证文件接受。//同文件夹下的json文件路径。//请求成功完成后要执行的方法。//同文件夹下的json文件路径。//请求成功完成后要执行的方法。//请求成功后的回调函数。//请求方式为get。

因为不打算使用数据库,所以使用了json进行数据存储
有很多基础的东西需要注意
逻辑是html通过ajax提交数据给php,php收到新数据后打开服务器的sql.json文件,json文件内容为

[{"name":1,"where":1},{"name":3,"where":3}]

php读取整个json文件后在最后的]位置写入新获取到的数据,这里用到了php中fwrite函数,首先php打开json文件

$file = 'sql.json';
$fp1 = @fopen($file,'rb+');

注意是要用rb+模式,进行读写
使用fseek($fp1, 0, SEEK_END);移动到最后一位
获取当前位置,存进变量$zishu

$zishu=ftell($fp1);

移动位置到倒数第二位

fseek($fp1,$zishu-1);

现在就移动到了

[{"name":1,"where":1},{"name":3,"where":3}]

中的]位置
然后使用fwrite写进新的内容就可以了。
fwrite是分段谢json格式的
注意字母类型的数据需要加” “号
{“name”:“z”,“where”:“z”}

fwrite($fp1,',{"name":"');//把123替换文件前三个字节
fwrite($fp1,$user);//把123替换文件前三个字节
fwrite($fp1,'","where":"');//把123替换文件前三个字节
fwrite($fp1,$where);//把123替换文件前三个字节
fwrite($fp1,'"}]');//把123替换文件前三个字节
fclose($fp1);

{“name”:3,“where”:3}
下面是参考文章
PHP file() 函数
ajax发送json到php,使用ajax将JSON发送到PHP
json标准格式举例_json几个小例子
PHP基础与Ajax网络请求教程_尚学堂PHP零基础入门到精通_学好AJA
PHP fseek 文件系统函数
PHP fseek( )实例讲解
php fseek函数,php fseek函数怎么用
PHP fgets() 函数
php怎么删除txt里指定行
php怎么删除txt里指定行
php如何删除文本文件内容
PHP 写入文件
几个小例子

<?php
$file = fopen("1.txt","rb+");

// 输出当前位置

echo ftell($file);
echo "。。。";
//输出读取一行内容(这里只有一行)
echo fgets($file);
echo "。。。";

// 改变当前位置

#fseek($file,"12");
//改变到最后位置
fseek($file, 0, SEEK_END);



echo "。。。";
// 再次输出当前位置
echo ftell($file);
//将当前位置保存到变量
$zishu=ftell($file);
//移动光标到最后一位减一的地
fseek($file,$zishu-1);
fwrite($file,"r");
?>

小李子


 <?php 




$file = 'sql.json';
$fp1 = @fopen($file,'rb+');//r+指针在文件头部,改成a表示文件指针在文件末尾

echo ftell($fp1);
echo "。。。";
//输出读取一行内容(这里只有一行)
echo fgets($fp1);
echo "。。。";

// 改变当前位置


//改变到最后位置
fseek($fp1, 0, SEEK_END);



echo "。。。";
 //再次输出当前位置
echo ftell($fp1);
//将当前位置保存到变量
$zishu=ftell($fp1);
//移动光标到最后一位减一的地
fseek($fp1,$zishu-1);

fwrite($fp1,',{"name":');//把123替换文件前三个字节
fwrite($fp1,"ff");//把123替换文件前三个字节
fwrite($fp1,',"where":');//把123替换文件前三个字节
fwrite($fp1,"kl");//把123替换文件前三个字节
fwrite($fp1,'}]');//把123替换文件前三个字节
fclose($fp1);
echo $user,$where;

 ?>
 

1.txt

[{"name":3,"where":3},{"name":3,"where":3},{"name":3,"where":3},{"name":44,"where":4},{"name":1,"where":1},{"name":1,"where":1}]

下面是完整代码
html

  
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">  

<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
<title>ServletJson</title>  
 

</script>
<style>


body {
	background-color:#a9e3ee;
}
</style>
<head runat="server">
     <title></title>
     <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js" type="text/javascript"></script>
     <script type="text/javascript">
     $.ajax({
                url: "sql.json",//同文件夹下的json文件路径
                type: "GET",//请求方式为get
                dataType: "json", //返回数据格式为json
                success: function (data) {//请求成功完成后要执行的方法 
                    //data.push(cc);
                    
                    console.log(data);
                    

                }
                })
                
         var sz=[];
         function zs(){     
            var na=$("#name").val();
            var wh=$("#where").val();
            sz.push({name:na,where:wh});
            $.ajax({
                url: "sql.json",//同文件夹下的json文件路径
                type: "GET",//请求方式为get
                dataType: "json", //返回数据格式为json
                success: function (data) {//请求成功完成后要执行的方法 
                    //data.push(cc);
                    sz.push(data);
                    console.log(sz);
                    

                }
                })
           } 
   
            
            function tj(){
            var na=$("#name").val();
            var wh=$("#where").val();
            var dataString = JSON.stringify(sz);
            console.log(dataString);
             $.ajax({
            type: "post",      //get or post  个人感觉post安全很多
            url: "c.php",   // 目的url
            dataType: "json",  //数据类型  可以有很多种
            //data: {s:dataString},   //传输的数据  在验证文件接受
            data:{name:na,where:wh},
            success: function(res){   //请求成功后的回调函数
                console.log(res);
            }
        });
}
            
     </script>
 </head>
 <body>
    <form method="post" action="">
        <div>物品名称
     <input type="text" id="name" name="name" />
     放在哪里
      <input type="text" id="where" >
     <input type="submit" id="button"  value="form" />
     
     </div>
      
    </form>
     <button type="button" onclick="tj()">ajax</button>
     <button type="button" onclick="zs()">zs</button>
 </body>
 </html>

下面是php


 <?php 

#header('Content-type:text/json;charset=utf-8');
  #file_put_contents('sql.json', "cc")


#$c=array();

$user = $_POST['name'];
$where =$_POST['where'];




$file = 'sql.json';
$fp1 = @fopen($file,'rb+');//r+指针在文件头部,改成a表示文件指针在文件末尾

echo ftell($fp1);
echo "。。。";
//输出读取一行内容(这里只有一行)
echo fgets($fp1);
echo "。。。";

// 改变当前位置


//改变到最后位置
fseek($fp1, 0, SEEK_END);



echo "。。。";
 //再次输出当前位置
echo ftell($fp1);
//将当前位置保存到变量
$zishu=ftell($fp1);
//移动光标到最后一位减一的地
fseek($fp1,$zishu-1);

fwrite($fp1,',{"name":');//把123替换文件前三个字节
fwrite($fp1,$user);//把123替换文件前三个字节
fwrite($fp1,',"where":');//把123替换文件前三个字节
fwrite($fp1,$where);//把123替换文件前三个字节
fwrite($fp1,'}]');//把123替换文件前三个字节
fclose($fp1);
echo $user,$where;

 ?>
 

原文地址:https://blog.csdn.net/weixin_40938312/article/details/127561420

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_51021.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注