phpjson安裝
⑴ php JSON格式數據交互實例代碼詳解
在PHP中解析JSON主要用到json_encode和json_decode兩個PHP
JSON函數,比PHP解析XML方便很多,下面詳細介紹下PHP
JSON的使用。
JSON基礎介紹
JSON(javaScript
Object
Notation)
是一種輕量級的數據交換格式。
JSON主要有兩種結構:
「名稱/值」對的集合,在PHP中可以理解為關聯數組
(associative
array)。
值的有序列表(An
ordered
list
of
values)。在PHP中可以理解為普通數組(array)。
對象是一個無序的「『名稱/值'對」集合。一個對象以「{」(左括弧)開始,「}」(右括弧)結束。每個「名稱」後跟一個「:」(冒號);「『名稱/值'
對」之間使用「,」(逗號)分隔。
數組是值(value)的有序集合。一個數組以「[」(左中括弧)開始,「]」(右中括弧)結束。值之間使用「,」(逗號)分隔。值(value)可以是雙引號括起來的字元串(string)、數值(number)、true、false、
null、對象(object)或者數組(array)。這些結構可以嵌套。
我目前對JSON的理解更偏向於數組,類似於PHP中的關聯數組,你可以將PHP數組轉換為JSON格式。
更多JSON的介紹請參考JSON官網和IBM關於JSON的介紹
PHP
JSON解析實例
PHP5.2開始已經將JSON作為PHP擴展的一部分,所以並不需要另外安裝JSON。另外為了保證下面的PHP
JSON實例不出現中文亂碼,請保證你的編碼格式為UTF8。
JSON是Javascript的一部分,首先我們看下Javascript中如何定義JSON
復制代碼
代碼如下:
var
json_obj
=
{'WebName':'PHP網站開發教程網'};
alert(json_obj.WebName);
var
json_arr
=[{'WebName':'PHP網站開發教程網','WebSite':'http://www.jb51.net'},{'ArtTitle':'PHP
JSON實例講解'}]
alert(json_arr[1].ArtTitle);
var
php_json
=
[['PHP網站開發教程網','http://www.jb51.net'],['文章標題','PHP
JSON實例講解']];
alert(php_json[1][0]);
在這段JSON實例代碼中我構建了所有的JSON形式,
第1行,定義了JSON以對象形式存在
第4行,定義了JSON以數組形式存在,嵌套了JSON對象,所以有點類似於PHP的關聯數組,其實仍然是對象。
第7行,定了JSON以普通數組形式存在。
注意:由於Javascript是區分大小寫的,所以訪問JSON關聯數組對象時注意key的大小寫問題。
PHP與JSON格式數據交互時,第一步需要將PHP數組轉換為JSON格式的數據,可使用PHP5自帶的json_encode函數,當PHP解析傳遞過來的JSON格式數據時需要使用json_decode函數進行解析轉換為PHP數組,PHP轉換並解析JSON數據的實例代碼如下
復制代碼
代碼如下:
<?php
$json_arr
=
array('WebName'=>'PHP網站開發教程網','WebSite'=>'http://www.jb51.net');
$php_json
=
json_encode($json_arr);
echo
$php_json;
$php_json
=
json_decode($php_json);
print_r($php_json);
?>
說明:這里通過PHP定義了關聯數組,然後通過json_encode轉換為JSON格式的數據,通過echo語句可以看到轉換後的JSON對象,通過PHP
JSON解析函數json_decode可以將JSON格式的數據解析為PHP的關聯數組。如果編碼不正確,JSON中文會出現亂碼。如果你使用Editplus調試PHP,請注意保存文件時編碼將ANSI改為UTF8。
最後我們來看下完整的PHP
JSON交互實例
復制代碼
代碼如下:
<?php
$json_arr
=
array('WebName'=>'PHP網站開發教程網','WebSite'=>'http://www.jb51.net');
$php_json
=
json_encode($json_arr);
?>
<script
type="text/javascript">
var
php_json
=
<?=$php_json?>;
</script>
<script
type="text/javascript">
function
php_json_dis(php_json)
{
alert(php_json.WebName);
alert(php_json.WebSite);
}
php_json_dis(php_json);
</script>
至此,PHP通過json_encode和json_decode函數對JSON格式數據進行轉換和解析的實例就介紹完了。
⑵ php和安卓怎麼實現數據(如json)交互
PHP是一種創建動態交互性站點的伺服器端腳本語言,優勢:PHP腳本語言應用廣泛,開源免費,最重要的是入門簡單,容易掌握。 PHP能夠生成動態頁面內容 PHP能夠創建、打開、讀取、寫入、刪除以及關閉伺服器上的文件 PHP能夠接收表單數據 PHP能夠發送並取回cookies PHP能夠添加、刪除、修改資料庫中的數據 PHP能夠限制用戶訪問網站中的某些頁面 能夠運行於各種平台,幾乎兼容所有WEB伺服器,支持多種資料庫 1.我們想要運行PHP,首先要有個web伺服器,一般可以在本地部署一個伺服器用來測試。所以需要下載個XAMPP,我們在網路搜索apache friends,直接打開第一個鏈接,然後毫不猶豫的下載最新版本(PHP7.0.9),下載後執行安裝。 2. 2.現在來配置XAMPP來部署一個本地伺服器,打開只需要啟用Apache服務,下面我就啟動成功了。如果啟用不成功,Port(s)沒有數據顯示,就證明你監聽的PC埠被佔用,你可以在Config的里第一個選項進行監聽埠的更改,找到記事本里的Listen 8080命令改後綴,這里我把監聽埠改成空閑的8080了。 3.下面來打開Dreamweaver建一個伺服器站點。站點配置:本地站點文件夾一定要選擇你裝Xampp路徑的htdocs的目錄里。 4.添加伺服器配置: 這樣站點就設置好了,然後在站點文件夾創建server.php,腳本如下 <?php //設置頁面內容是html編碼格式是utf-8 //header("Content-Type: text/plain;charset=utf-8"); header('Access-Control-Allow-Origin:*'); header('Access-Control-Allow-Methods:POST,GET'); header('Access-Control-Allow-Credentials:true'); header("Content-Type: application/json;charset=utf-8"); //header("Content-Type: text/xml;charset=utf-8"); //header("Content-Type: text/html;charset=utf-8"); //header("Content-Type: application/javascript;charset=utf-8"); //定義一個多維數組,包含員工的信息,每條員工信息為一個數組 $staff = array ( array("name" => "喬布斯", "number" => "101", "sex" => "男", "job" => "IOS開發工程師"), array("name" => "比爾蓋茨", "number" => "102", "sex" => "男", "job" => "微軟開發工程師"), array("name" => "陳美麗", "number" => "103", "sex" => "女", "job" => "安卓開發工程師"), array("name" => "黃力", "number" => "104", "sex" => "男", "job" => "Java開發工程師"), array("name" => "車神", "number" => "105", "sex" => "男", "job" => "游戲開發工程師"), array("name" => "測試貓", "number" => "106", "sex" => "男", "job" => "web前端開發工程師") ); //判斷如果是get請求,則進行搜索;如果是POST請求,則進行新建 //$_SERVER是一個超全局變數,在一個腳本的全部作用域中都可用,不用使用global關鍵字 //$_SERVER["REQUEST_METHOD"]返回訪問頁面使用的請求方法 if ($_SERVER["REQUEST_METHOD"] == "GET") { search(); } elseif ($_SERVER["REQUEST_METHOD"] == "POST"){ create(); } //通過員工編號搜索員工 function search(){ //檢查是否有員工編號的參數 //isset檢測變數是否設置;empty判斷值為否為空 //超全局變數 $_GET 和 $_POST 用於收集表單數據 if (!isset($_GET["number"]) empty($_GET["number"])) { echo '{"success":false,"msg":"參數錯誤"}'; return; } //函數之外聲明的變數擁有 Global 作用域,只能在函數以外進行訪問。 //global 關鍵詞用於訪問函數內的全局變數 global $staff; //獲取number參數 $number = $_GET["number"]; $result = '{"success":false,"msg":"沒有找到員工。"}'; //遍歷$staff多維數組,查找key值為number的員工是否存在,如果存在,則修改返回結果 foreach ($staff as $value) { if ($value["number"] == $number) { $result = '{"success":true,"msg":"找到員工:員工編號:' . $value["number"] . ',員工姓名:' . $value["name"] . ',員工性別:' . $value["sex"] . ',員工職位:' . $value["job"] . '"}'; break; } } echo $result; } //創建員工 function create(){ //判斷信息是否填寫完全 if (!isset($_POST["name"]) empty($_POST["name"]) !isset($_POST["number"]) empty($_POST["number"]) !isset($_POST["sex"]) empty($_POST["sex"]) !isset($_POST["job"]) empty($_POST["job"])) { echo '{"success":false,"msg":"參數錯誤,員工信息填寫不全"}'; return; } //TODO: 獲取POST表單數據並保存到資料庫 //提示保存成功 echo '{"success":true,"msg":"員工:' . $_POST["name"] . ' 信息保存成功!"}'; } ?> 我們可以在server.php文件數組$staff里的數據進行查詢,並且可以實現添加數據的功能,下面來創建demo.html <style> body,input,button,select,h1{ font-size:20px; line-height:18px; } </style> <script> window.onload=function(){ document.getElementById("search").onclick=function(){//查詢數據 //發送Ajax查詢請求並處理 var request=new XMLHttpRequest(); //open("方法(GET查詢,POST添加)","打開的文件數據",處理方式(同步為false非同步為true,不填默認為true)); request.open("GET","server.php?number="+document.getElementById('keyword').value); request.send(); request.onreadystatechange=function(){ if(request.readyState===4){//當伺服器請求完成 if(request.status===200){//status==200為伺服器請求成功 var data=JSON.parse(request.responseText); if(data.success){//數據填寫符合要求 document.getElementById('searchResult').innerHTML=data.msg; }else{//數據填寫不符號要求 document.getElementById('searchResult').innerHTML="出現錯誤:"+data.msg; } }else{//伺服器請求失敗 alert("發生錯誤:"+request.status); } } } } document.getElementById("save").onclick=function(){//添加數據 //發送Ajax添加數據請求並處理 var request=new XMLHttpRequest(); //open("方法(GET查詢,POST添加)","打開的文件數據",處理方式(同步為false非同步為true,不填默認為true));; request.open("POST","server.php"); //定義data取得用戶所填寫的數據,並且send(data)到伺服器 var data="name="+document.getElementById("staffName").value +"&number="+document.getElementById("staffNumber").value +"&sex="+document.getElementById("staffSex").value +"&job="+document.getElementById("staffJob").value; request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");//在POST方法里必寫,否則添加數據不起作用 request.send(data); request.onreadystatechange=function(){ if(request.readyState===4){//當伺服器請求完成 if(request.status===200){//status==200為伺服器請求成功 var data=JSON.parse(request.responseText); if(data.success){//數據填寫符合要求 document.getElementById('createResult').innerHTML=data.msg; }else{//數據填寫不符合要求 document.getElementById('createResult').innerHTML="出現錯誤:"+data.msg; } }else{//伺服器請求失敗 alert("發生錯誤:"+request.status); } } } } } </script> <body> <h1>員工查詢</h1> <label>請輸入員工編號:</label> <input type="text" id="keyword"/> <button id="search">查詢</button> <p id="searchResult"></p> <h1>員工創建</h1> <label>請輸入員工姓名:</label> <input type="text" id="staffName"/><br> <label>請輸入員工編號:</label> <input type="text" id="staffNumber"/><br> <label>請輸入員工性別:</label> <select id="staffSex"> <option>男</option> <option>女</option> </select><br> <label>請輸入員工職位:</label> <input type="text" id="staffJob"/><br> <button id="save">保存</button> <p id="createResult"></p> </body> 以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
⑶ 如何安裝Laravel框架
通過 Laravel 安裝器安裝
1
先下載 Laravel 安裝器 PHAR 文件。為了方便起見,將該文件重命名為 laravel 並移動至 /usr/local/bin目錄。完成後,只需在你指定的目錄下輸入簡單的 laravel new 命令即可創建一個全新的Laravel安裝。例如,laravel new blog 將創建一個名為 blog 的目錄,該目錄中包含了一份全新的Laravel安裝以及所需的依賴項。這種安裝方法比通過 Composer 安裝要快許多
通過 Composer create-project 命令安裝Lar
1
還可以通過在命令行執行 Composer create-project 命令來安裝Laravel:
composer create-project laravel/laravel --prefer-dist
通過下載Laravel包安裝
1
Composer安裝完成後,下載最新版Laravel框架,把它解壓縮到你伺服器上的一個目錄中。然後在Laravel應用的根目錄下運行命令行命令 php composer.phar install (或者 composer install )來安裝所有的框架依賴包。在此過程中,為了成功完成安裝,你需要在伺服器上安裝好Git。
當Laravel框架安裝好後,你可以使用命令行命令 php composer.phar update 來更新框架。
END
伺服器環境要求
1
Laravel框架有一些系統要求:
PHP最低版本: 5.3.7MCrypt PHP擴展
從PHP 5.5版本開始,針對某些操作系統的安裝包需要你自己手工安裝PHP的JSON擴展模塊。如果你使用的是Ubuntu,可以通過, apt-get install php5-json 命令直接安裝。
配置
Laravel框架幾乎無需配置就可立即使用。你可以自由地快速開始開發。然而,你也許希望先查看下app/config/app.php 配置文件和相關的文檔說明。它包含了一些你也許要修改的配置選項,如 時區 和 地區 等。
許可權設置
Laravel框架有一個目錄需要額外設置許可權: 需要為 app/storage 目錄下的文件設置寫許可權。
路徑設置
一些框架目錄路徑是可以設置的。如果需要改變這些目錄的位置,可以查看 bootstrap/paths.php 文件中的設置。
Laravel框架通過設置 public/.htaccess 文件去除鏈接中的index.php。 如果你你的伺服器使用的是Apache,請開啟mod_rewrite 模塊。
⑷ PHP接收json 並將接收數據插入資料庫的實現代碼
最近有一個需求,前端向後台提交json,後台解析並且將提交的值插入資料庫中,
難點
1、php解析json(這個不算難點了,網上實例一抓一大把)
2、解析json後,php怎樣拿到該拿的值
<?php
require
('connect.php');
/*
本例用到的數據:
post_array={"order_id":"0022015112305010013","buyer_id":"2","seller_id":"1","all_price":"100.00","json_list":[{"proct_id":"3","proct_number":"3"},{"proct_id":"8","proct_number":"2"},{"proct_id":"10","proct_number":"4"}]}
*/
$post_array=$_POST['post_array'];
//--解析Json,獲取對應的變數值
$obj=json_decode($post_array,TRUE);
$order_id
=
$obj['order_id'];
$buyer_id
=
$obj['buyer_id'];
$seller_id
=
$obj['seller_id'];
$all_price
=
$obj['all_price'];
$i=0;//循環變數
//--得到Json_list數組長度
$num=count($obj["json_list"]);
//--遍歷數組,將對應信息添加入資料庫
for
($i;$i<$num;$i++)
{
$list_proct_id[]=$obj["json_list"][$i]["proct_id"];
$list_proct_number[]=$obj["json_list"][$i]["proct_number"];
$insert_order_proct_sql="INSERT
INTO
tbl_order_proct
(order_id,proct_id,proct_number)
VALUES
(?,?,?)";
$result
=
$sqlconn
->
prepare($insert_order_proct_sql);
$result
->
bind_param("sss",
$order_id,$list_proct_id[$i],$list_proct_number[$i]);
$result->execute();
}
//--添加訂單信息
$insert_order_sql="INSERT
INTO
tbl_order
(order_id,buyer_id,seller_id,all_price)
VALUES
(?,?,?,?)";
$result=$sqlconn->prepare($insert_order_sql);
$result->bind_param("ssss",$order_id,$buyer_id,$seller_id,$all_price);
$result->execute();
$result
->
close();
$sqlconn
->
close();
?>
投稿者信息
昵稱:
Hola
Email:
[email protected]
⑸ PHP extensions: MySQLi, GD, PCRE, SPL, SimpleXML, DOM, JSON, iconv 這些這些可在那下載如何安裝
具體看你在什麼操作系統下,比如ubuntu debian可以直接用apt-get install 安裝,gentoo可以用emerge安裝。
Windows可以直接下載對應的dll程脊橋序,在php.ini中打開。
如果你是自己編譯歷野枝的php(如果你是自己編譯的,肢敏應該會吧),需要在configure中--with-mysqli
Dom是預設就打開的,除非主動關閉
具體參考
http://cn.php.net/manual/en/mysqli.installation.php
http://cn.php.net/manual/en/dom.installation.php
⑹ 淺談PHP中JSON數據操作
JSON,全稱是JavaScript
Object
Notation。它是基於JavaScript編程語言ECMA-262
3rd
Edition-December
1999標準的一種輕量級的數據交換格式,主要用於跟伺服器進行交換數據。跟XML相類似,它獨立語言,在跨平台數據傳輸上有很大的優勢
新建文件json.php,先做encode操作:
//encode
//生成JSON格式數據
$arr
=
array(1,2,3,4,5,6,7,8,9,'Hello','PHP');
echo
json_encode($arr);//json_encode:把一個對象轉換成json格式數據
得到的結果是[1,2,3,4,5,6,7,8,9,"Hello","PHP"]
再來做decode操作:
//decode
解碼
$jsonStr
=
'{"h":"Hello","w":"World","0":[3,2,1]}';
$obj
=
json_decode($jsonStr);
echo
$obj->h;//使用成員訪問的方式就可以得到結果
知道簡單的使用方法後,可以嘗試著抓API數據,比如天氣...
以上所述就是本文的全部內容了,希望大家能夠喜歡。
⑺ 如何在PHP中解析json
目前,JSON已經成為最流行的數據交換格式之一,各大網站的API幾乎都支持它。
從5.2版本開始,PHP原生提供json_encode()和json_decode()函數,前者用於編碼,後者用於解碼。
一、json_encode()
該函數主要用來將數組和對象,轉換為json格式。先看一個數組轉換的例子:
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);
結果為
{"a":1,"b":2,"c":3,"d":4,"e":5}
由於json只接受utf-8編碼的字元,所以json_encode()的參數必須是utf-8編碼,否則會得到空字元或者null。當中文使用GB2312編碼,或者外文使用ISO-8859-1編碼的時候,這一點要特別注意。
二、索引數組和關聯數組
PHP支持兩種數組,一種是只保存"值"(value)的索引數組(indexed array),另一種是保存"名值對"(name/value)的關聯數組(associative array)。
由於javascript不支持關聯數組,所以json_encode()只將索引數組(indexed array)轉為數組格式,而將關聯數組(associative array)轉為對象格式。
比如,現在有一個索引數組
$arr = Array('one', 'two', 'three');
echo json_encode($arr);
結果為:
["one","two","three"]
三、類(class)的轉換
下面是一個PHP的類: class Foo { const ERROR_CODE = '404'; public $public_ex = 'this is public'; private $private_ex = 'this is private!'; protected $protected_ex = 'this should be protected'; public function getErrorCode() { return self::ERROR_CODE; } }
現在,對這個類的實例進行json轉換:
$foo = new Foo;
$foo_json = json_encode($foo);
echo $foo_json;
輸出結果是
{"public_ex":"this is public"}
可以看到,除了公開變數(public),其他東西(常量、私有變數、方法等等)都遺失了。