将jsonp转为PHP数组和对象。
/**
* jsonp转数组|Jsonp转json
* @param string $jsonp jsonp字符串
* @param bool $assoc true转数组 false转对象
* @return array|ArrayObject|null
*/
function jsonp_decode($jsonp, $assoc = false)
{
$pattern = '/\((.*)\)/s';
if (preg_match($pattern, $jsonp, $matches))
{
if (!empty($matches['1']))
{
return json_decode($matches['1'], $assoc);
}
return null;
}
return null;
}使用实例:
//jsonp字符串 $jsonp = 'callbackFunction(["customername1","customername2"])'; //jsonp转数组 $jsonp_result = jsonp_decode($jsonp,true); var_dump($jsonp_result);
转换结果:
array(2) {
[0]=>
string(13) "customername1"
[1]=>
string(13) "customername2"
}也可以试试下面的这个方法,宇润写的,我没有测试:
/**
* 把jsonp转为php数组
* @param string $jsonp jsonp字符串
* @param boolean $assoc 当该参数为true时,将返回array而非object
* @return array
*/
function jsonp_decode($jsonp, $assoc = false)
{
$jsonp = trim($jsonp);
if(isset($jsonp[0]) && $jsonp[0] !== '[' && $jsonp[0] !== '{') {
$begin = strpos($jsonp, '(');
if(false !== $begin)
{
$end = strrpos($jsonp, ')');
if(false !== $end)
{
$jsonp = substr($jsonp, $begin + 1, $end - $begin - 1);
}
}
}
return json_decode($jsonp, $assoc);
} if($_SERVER['REQUEST_METHOD'] == 'POST') { echo('This is post '); } elseif ($_SERVER['...
主要原理是通过PHP创建多个子进程,在子进程中发送进程闹钟信号,然后再监听闹钟信号中继续发送闹钟信号。同时通过父进程设置非阻塞运行。代码如下:<?php /** * 订单任务 */ class Order { &n...
最近在公司开发一个新的项目假设项目域名是a.com,需要接入b.com的单点登陆系统。(1).首先我们会在a.com的登陆页面用iframe引入b.com来显示登陆界面,实际上登陆验证操作都是在b.com上面(2).当b.com验证通过,会在前端ajax请求a.com的回调地址,这个回调地址目的就是...
今天帮朋友查询wordpress执行超级慢的原因,特此记录开启fpm的慢日志,记录执行超过30秒的脚本request_slowlog_timeout = 30 slowlog = var/log/slow.log查看日志[23-May-2019 17...
最近在编写windows php多线程的东西,从官网下载了PHP的线程安全版,尝试开启curl扩展extension=php_curl.dllphp -m 却提示 PHP Startup: Unable to load dynamic library 'C:\php\ext\php_curl...
为什么使用队列?因为pop取队列具有原子性。假如我们需要秒杀一个商品id,我们先将商品的库存保存到一个队列。例如:<?php $redis = new Redis(); $redis->connect('127.0.0.1', 6...