1. 程式人生 > >php寫介面例子返回json和xml資料

php寫介面例子返回json和xml資料

<?php 
	// echo md5("news1");
	/*
	查詢
		介面地址:http://apis.juhe.cn/mobile/get
		支援格式:json/xml
		請求方式:get
		請求示例:http://localhost/day9.8/port.php?key=c7d81b6949462e2f1bb5fdf18dd1d006&id=使用者id&dtype=xx
	請求引數說明:
	 	id  	int 	是 	使用者id
  		key 	string 	是 	應用APPKEY(應用詳細頁查詢)
  		dtype 	string 	否 	返回資料的格式,xml或json,預設json
  	返回引數說明:
  	 	error_code 	int 	返回碼
  		reason 	string 	返回說明
  		result 	string 	返回結果集
	*/
  	// 模擬
  	// $key=c7d81b6949462e2f1bb5fdf18dd1d006;
  	// $id=1;
  	// 接收使用者資訊
  	$key=$_GET['key'];
  	$id=$_GET['id'];
  	// 如果使用者寫dtype接收值,沒有預設json
  	$dtype=isset($_GET['dtype'])?$_GET['dtype']:'json';
  	// 伺服器生成key值和使用者key值對比
  	$app_key=md5("news$id");
  	if ($app_key!=$key) {
  		echo "非法請求";die;
  	}
  	// 生成介面
  	$pdo=new PDO("mysql:host=localhost;dbname=news","root","root");
  	$pdo->exec("set names utf8");
  	// 得到資料庫的內容
  	$sql="select * from hao123";
  	$data=$pdo->query($sql)->fetchAll(PDO::FETCH_ASSOC);
  	if ($dtype=='xml') {
  		// 生成xml格式資料
  		header("content-type:text/xml;charset=utf8");
  		echo "<?xml version='1.0' encoding='utf-8'?>";
  		echo "";
  		foreach ($data as $key => $value) {
  			echo "";
  				echo "{$value['link']}";
  				echo "{$value['title']}";
  			echo "";
  		}
  		echo "";
  	}else{
  		// 生成json格式資料
  		header("content-type:text/html;charset=utf8");
  		echo json_encode($data,JSON_UNESCAPED_UNICODE);
  	}
 ?>