本文目录一览:
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进行服务端处理,对于简单的请求处理起来觉得还不错,这篇文章可以作为初次接触微信小程序的一个参考。