JSON PHP
ການນຳໃຊ້ທົ່ວໄປຂອງ JSON ແມ່ນທີ່ອ່ານຂໍ້ມູນຈາກທີ່ຫຼັງຄອມພິວເຕີບ web ແລະສະແດງຂໍ້ມູນພວກນັ້ນໃນເວັບໄຊ:
ວັນນີ້ຈະສອນທີ່ຈະປ່ຽນປ່ຽນຂໍ້ມູນ JSON ລະຫວ່າງທີ່ຢູ່ບາງຫຼັງຄອມພິວເຕີບ PHP:
ເອບພິພາກສາ PHP
PHP ສະໜອງຫົວຫຼັກທີ່ກຳນົດໃຫ້ຈັດການ JSON:
ຜ່ານການນຳໃຊ້ຫົວຫຼັກ PHP: json_encode()
,PHP ຂອງອົງການສາມາດປ່ຽນໄປຫາ JSON:
ເອບພິພາກສາ PHP
<?php myObj->name = "Bill Gates"; myObj->age = 62; $myObj->city = "Seattle"; $myJSON = json_encode($myObj); echo $myJSON; ?>
客户端 JavaScript
这是客户端上的 JavaScript,使用 AJAX 调用来请求上例的 PHP 文件:
ຄວາມນົດສະຖານ
ນຳໃຊ້ JSON.parse()
把结果转换为 JavaScript 对象:
var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myObj = JSON.parse(this.responseText); document.getElementById("demo").innerHTML = myObj.name; }); }); xmlhttp.open("GET", "demo_file.php", true); xmlhttp.send();
PHP 数组
在使用 PHP 函数 json_encode()
时,PHP 中的数组也将被转换为 JSON:
ເອບພິພາກສາ PHP
<?php $myArr = array("Bill Gates", "Steve Jobs", "Elon Musk"); $myJSON = json_encode($myArr); echo $myJSON; ?>
客户端 JavaScript
这是客户端上的 JavaScript,使用 AJAX 调用来请求上例的 PHP 文件:
ຄວາມນົດສະຖານ
ບໍ່ກ່າວ JSON.parse()
将结果转换为 JavaScript 数组:
var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myObj = JSON.parse(this.responseText); document.getElementById("demo").innerHTML = myObj[2]; }); }); xmlhttp.open("GET", "demo_file_array.php", true); xmlhttp.send();
PHP 数据库
PHP 是服务器端编程语言,应该用于只能由服务器执行的操作,比如访问数据库。
想象一下服务器上有一个数据库,包含客户、产品和供应商数据。
ຕອນນີ້,ທ່ານຕ້ອງການຮຽກຮ້ອງບໍລິສັດທີ່ມີສະຖິຕິລົງຂໍ້ມູນສະຖິຕິສະຫມຸດຄົນທີ່ແຕ່ງຫລັງສິບສອງຄັ້ງດຽວກັນ:
ຄວາມນົດສະຖານ
ບໍ່ກ່າວ JSON.stringify()
ການປ່ຽນວັດຖຸ JavaScript ທີ່ແມ່ນ JSON:
obj = { "table":"customers", "limit":10 }; dbParam = JSON.stringify(obj); xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("demo").innerHTML = this.responseText; }); }); xmlhttp.open("GET", "demo_json_db.php?x=" + dbParam, true); xmlhttp.send();
ຄວາມເຫັນວ່າດັ່ງກ່າວ:
- ການອະທິບາຍວັດຖຸທີ່ມີຄວາມລະອຽດ table ແລະ limit。
- ປ່ຽນບັນຊີດັບດັນດ້ວຍບັນຊີດັບດັນດ້ວຍ JSON.
- ສົ່ງຂໍ້ມູນໄປຫາ PHP ບັນຊີດັບດັນດ້ວຍ JSON ຂອງການສັງເກດ.
- ລໍຖ້າຈົນກວ່າຂໍ້ມູນທີ່ຖືກກັບຄືນຄືນທີ່ເປັນ JSON.
- ສະແດງຂໍ້ມູນທີ່ຖືກຂໍ້ສັງເກດຈາກ PHP.
ກວດສະຖານທີ່ PHP
ເອບພິພາກສາ PHP
<?php header("Content-Type: application/json; charset=UTF-8"); $obj = json_decode($_GET["x"], false); $conn = new mysqli("myServer", "myUser", "myPassword", "Northwind"); $result = $conn->query("SELECT name FROM ".$obj->$table." LIMIT ".$obj->$limit); $outp = array(); $outp = $result->fetch_all(MYSQLI_ASSOC); echo json_encode($outp); ?>
PHP ບັນຊີຫົວຫຼັກ:
- ການປ່ຽນຂໍ້ມູນເວລາທີ່ຖືກຂໍ້ສັງເກດໄປເປັນໂອລເຈັກຕັນຫຼືເປັນຫົວຫຼັກຂອງ PHP ກົນລະຍຸດ.
json_decode()
. - ການເຂົ້າໄປບັນຊີດັບດັນດ້ວຍຂໍ້ມູນທີ່ຂໍ້ສັງເກດ.
- ການເພີ່ມສາຍວິທະຍຸໄປໃນໂອລເຈັກຕັນໃນການນຳໃຊ້
json_encode()
ກົນລະຍຸດກັບ JSON ກັບໂອລເຈັກຕັນ.
ການກວດສອບຂໍ້ມູນ
ການປ່ຽນຂໍ້ມູນຈາກເອສບອຍ PHP ກັບ JavaScript ໂອລເຈັກຕັນຫຼືຫຼາຍກວ່າຫຼາຍຫຼາຍໃນຄວາມນົດສະຖານນີນີ້.
ຄວາມນົດສະຖານ
ນຳໃຊ້ JSON.parse()
ການປ່ຽນ JSON ກັບ JavaScript ໂອລເຈັກຕັນ:
... xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myObj = JSON.parse(this.responseText); for (x in myObj) { txt += myObj[x].name + "<br>"; }); document.getElementById("demo").innerHTML = txt; }); }); ...
PHP ກົນລະຍຸດ = POST
ໃນຂະນະທີ່ສົ່ງຂໍ້ມູນໄປຫາສະຖານທີ່ບໍລິການອາດໄດ້ແມ່ນທີ່ທີ່ດີທີ່ສຸດທີ່ຈະນຳໃຊ້ກົນລະຍຸດ HTTP POST.
ສະນັ້ນເພື່ອນຳໃຊ້ກົນລະຍຸດ POST ເພື່ອສົ່ງຂໍ້ມູນ AJAX ການລະບຸວ່າກົນລະຍຸດພາຍໃນຫົວຫຼັກຂອງຫົວຫຼັກແລະຫົວຫຼັກຫົວຫຼັກຫຼັກ.
ຂໍ້ມູນທີ່ສົ່ງໄປໃຫ້ສະຖານທີ່ບໍລິການອາດໄດ້ແມ່ນ .send();
ຂໍ້ຂັດແຍກຂອງກົນລະຍຸດ
ຄວາມນົດສະຖານ
obj = { "table":"customers", "limit":10 }; dbParam = JSON.stringify(obj); xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myObj = JSON.parse(this.responseText); for (x in myObj) { txt += myObj[x].name + "<br>"; }); document.getElementById("demo").innerHTML = txt; }); }); xmlhttp.open("POST", "demo_json_db.php", true); xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xmlhttp.send("x=" + dbParam);
ການແຕກຕ່າງທີ່ຄົງທີ່ຂອງເອບພິພາກສາ PHP ແມ່ນການກູ້ຄົນຂໍ້ມູນທີ່ຖືກສົ່ງຕົວ.
ເອບພິພາກສາ PHP
ນຳໃຊ້ $_POST
ບໍ່ແມ່ນ $_GET
:
<?php header("Content-Type: application/json; charset=UTF-8"); $obj = json_decode($_POST["x"], false); $conn = new mysqli("myServer", "myUser", "myPassword", "Northwind"); $result = $conn->query("SELECT name FROM ".$obj->$table." LIMIT ".$obj->$limit); $outp = array(); $outp = $result->fetch_all(MYSQLI_ASSOC); echo json_encode($outp); ?>