本文目錄一覽:
php怎麼微信小程序發送過來的json數據
可以自己去配置那個request域名到自己的服務器,然後用自己的服務器保存數據
php如何發送和接收JSON數據
對於json,PHP有對應的方法進行操作。
一般而言,json會以字符串形式傳給PHP腳本,一般都是放在$_POST裡面,
14
?php
// 接收
$json_parameter = $_POST[‘json_str’];
// 處理, 變成數組
$array = json_decode($json_parameter);
// PHP 把數組數據變成json格式字符串,發給頁面
$demo = array(
‘key’ = ‘value’,
‘key2’ = ‘value2’
);
$demo_json = json_encode($demo); // 格式是{“key”:”value”,”key2″:”value2″}
echo $demo_json;
php json_encode 後, 漢字被轉移了
屬於unicode編碼
轉換自己做個函數就好!
?php
/**
* 將 %u4F19 轉換成如 伙 的 HTML Entity 的形式
*
* @param mixed $str
* @access public
* @return void
*/
function convert_entities($str) {
$str = preg_replace_callback(‘|%u([a-f0-9]{4})|i’,
create_function(
‘$matches’,
‘return \’\’ . hexdec($matches[1]) . \’;\’;’
),
$str
);
return $str;
}
/**
* 把 HTML Entity 轉換為原始字符
*
* @param mixed $source
* @access public
* @return void
*/
function utf8encode($source) {
$utf8str = ”;
$entities = explode(”, $source);
$size = count($entities);
for ($i = 0; $i $size; $i++) {
$foo = $entities[$i];
$nonEntity = strstr($foo, ‘;’);
if ($nonEntity !== false) {
$unicode = intval(substr($foo, 0, (strpos($foo, ‘;’) + 1)));
// determine how many chars are needed to reprsent this unicode char
if ($unicode 128) {
$bar = chr($unicode);
}
else if ($unicode = 128 and $unicode 2048) {
$binVal = str_pad(decbin($unicode), 11, ‘0’, STR_PAD_LEFT);
$binPart1 = substr($binVal, 0, 5);
$binPart2 = substr($binVal, 5);
$char1 = chr(192 + bindec($binPart1));
$char2 = chr(128 + bindec($binPart2));
$bar = $char1 . $char2;
}
else if ($unicode = 2048 and $unicode 65536) {
$binVal = str_pad(decbin ($unicode), 16, ‘0’, STR_PAD_LEFT);
$binPart1 = substr($binVal, 0, 4);
$binPart2 = substr($binVal, 4, 6);
$binPart3 = substr($binVal, 10);
$char1 = chr(224 + bindec($binPart1));
$char2 = chr(128 + bindec($binPart2));
$char3 = chr(128 + bindec($binPart3));
$bar = $char1 . $char2 . $char3;
}
else {
$binVal = str_pad(decbin($unicode), 21, ‘0’, STR_PAD_LEFT);
$binPart1 = substr($binVal, 0, 3);
$binPart2 = substr($binVal, 3, 6);
$binPart3 = substr($binVal, 9, 6);
$binPart4 = substr($binVal, 15);
$char1 = chr(240 + bindec($binPart1));
$char2 = chr(128 + bindec($binPart2));
$char3 = chr(128 + bindec($binPart3));
$char4 = chr(128 + bindec($binPart4));
$bar = $char1 . $char2 . $char3 . $char4;
}
if (strlen($nonEntity) 1) {
$nonEntity = substr($nonEntity, 1); // chop the first char (‘;’)
}
else {
$nonEntity = ”;
}
$utf8str .= $bar . $nonEntity;
}
else {
$utf8str .= $foo;
}
}
return $utf8str;
}
$str = ‘\u662f\u56fd\u5185\u6bbf\u5802\u7ea7\u5316\u5986\u5e08,\u8fd9\u6b21…’;
$str=str_replace(‘\\’,’%’,$str);
$str = convert_entities($str);
header(‘Content-Type:text/html;charset=utf-8’);
print utf8encode($str);
php處理微信小程序request請求
微信小程序的js後台只能執行一些簡單的邏輯,遇到比較複雜的處理表單數據的功能或者網絡功能就需要連接服務器來遠程處理,實現方式就是調用小程序的 wx.request() 這一接口。
request請求 就是基本的HTTP請求,可以攜帶一些表單數據,交給服務器處理。
在小程序中的寫法如下:
採用php作為服務器端語言,通過WAMP等框架可以很容易地搭建環境,服務器主要完成對請求數據的處理以及結果數據的返回。
請求數據的獲取非常容易,直接訪問相應的超全局數組,對於GET方法而言,通過下面的方式即可:
為了方便小程序端數據的處理,結果數據仍通過json格式返回,具體在php中的簡單做法就是
這樣返回的json數據就為
其中value1,value2等變量可以設置為多維數組,這樣通過json_encode() 函數之後就可以得到相應的嵌套的json數據,從而方便處理。
通過php可以很容易地處理微信小程序的request請求,筆者是由於前一段時間需要進行微信小程序的開發,就研究了一下小程序的邏輯,然後嘗試用php進行服務端處理,對於簡單的請求處理起來覺得還不錯,這篇文章可以作為初次接觸微信小程序的一個參考。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/231495.html