PHP直接的函數(shù)獲取或生成
創(chuàng)新互聯(lián)建站堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都做網站、成都網站建設、企業(yè)官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯(lián)網時代的常寧網站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!
用php生成json格式:json_encode('內容');
用php讀取json數(shù)據:json_deconde('json數(shù)據');
json_decode
PHP json_decode() 函數(shù)用于對 JSON 格式的字符串進行解碼,并轉換為 PHP 變量。
語法
mixed?json_decode?($json?[,$assoc?=?false?[,?$depth?=?512?[,?$options?=?0?]]])
參數(shù)
json_string: 待解碼的 JSON 字符串,必須是 UTF-8 編碼數(shù)據
assoc: 當該參數(shù)為 TRUE 時,將返回數(shù)組,F(xiàn)ALSE 時返回對象。
depth: 整數(shù)類型的參數(shù),它指定遞歸深度
options: 二進制掩碼,目前只支持 JSON_BIGINT_AS_STRING 。
mysql查詢某個數(shù)據庫下所有表名的sql語句:
SELECT?TABLE_NAME?FROM?INFORMATION_SCHEMA.TABLES?WHERE?TABLE_SCHEMA?=?'數(shù)據庫名稱'
具體生成示例如下:
?php
//連接數(shù)據庫
$con?=?mysql_connect("localhost","root","");
if?(!$con)
{
die('Could?not?connect:?'?.?mysql_error());
}
//選擇要操作的數(shù)據庫
mysql_select_db("activity");
//sql語句
$sql="SELECT?TABLE_NAME?FROM?INFORMATION_SCHEMA.TABLES?WHERE?TABLE_SCHEMA?=?'activity'";
//執(zhí)行sql
$result=mysql_query($sql);
$arr=array();
$i=0;
while($row=mysql_fetch_row($result))
{
$arr[$i]?=?$row[0];
$i++;
}
//將結果轉換為json格式
$json=json_encode($arr);
//輸出結果
print_r($json);
//關閉mysql數(shù)據庫連接
mysql_close($con);
?
生成結果:
1、php 輸出JSON格式,使用json_encode函數(shù)即可
2、示例:
?php
header('Content-type: text/json');
$fruits = array (
"fruits" = array("a" = "orange", "b" = "banana", "c" = "apple"),
"numbers" = array(1, 2, 3, 4, 5, 6),
"holes" = array("first", 5 = "second", "third")
);
echo json_encode($fruits);
?
示例得到結果:
{"fruits":{"a":"orange
$content?=?$_POST['data'];
$fp?=?fopen('/tmp/newfile.bin','w');
fwrite($fp,$content);
以上例子是在data參數(shù)上傳二進制,并保存到/tmp/newfile.bin中,解析json用json_decode,然后把二進制的那個值賦給content就可以
PHP接收JSON格式的數(shù)據
在API服務中,目前流行采用json形式來交互。
給前端調用的接口輸出Json數(shù)據,這個比較簡單,只需要組織好數(shù)據,用json_encode($array) 轉化一下,前端就得到json格式的數(shù)據。
接收前端提交的json數(shù)據稍微復雜一點,原因是:PHP默認識別的數(shù)據類型是application/x-標準的數(shù)據類型。因此,對型如text/xml 或者 soap 或者 application/octet-stream 和application/json格式之類的內容無法解析,如果用$_POST數(shù)組來接收就會失??!
此時可以使用$GLOBALS['HTTP_RAW_POST_DATA'] 或 file_get_contents('php://input') 來獲取提交的數(shù)據
查看手冊,可以發(fā)現(xiàn)$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST的區(qū)別:
$_POST:通過 HTTP POST 方法傳遞的變量組成的數(shù)組,是自動全局變量。
$GLOBALS['HTTP_RAW_POST_DATA'] :總是產生 $HTTP_RAW_POST_DATA 變量包含有原始的 POST 數(shù)據。此變量僅在碰到未識別 MIME 類型的數(shù)據時產生。$HTTP_RAW_POST_DATA 對于 enctype="multipart/form-data" 表單數(shù)據不可用。也就是說基本上$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST是一樣的。但是如果post過來的數(shù)據不是PHP能夠識別的,你可以用 $GLOBALS['HTTP_RAW_POST_DATA']來接收,比如 text/xml 或者 soap 等等。
補充說明:PHP默認識別的數(shù)據類型是application/x-標準的數(shù)據類型。