php怎么生成json,PHP和Nodejs哪个更好用?
这个不大好比。
首先,他们不是同一类东西。就目前而言,PHP除了做网站外,其他用得不多,毕竟他是为做网页而生的。一般地,node.js是一个js运行环境,通常人们拿它来做http server,对于某些情况,性能几乎是当前http server中最好的,但毕竟作为http server还比较年轻,对一些应用情景还不是特别有效。但node不仅仅做网站,由于他是一个js运行环境,基本可以做独立语言的事情,只要你愿意,几乎可以做你想做的。
其次,就http server而言,两个的设计理念也不同。PHP是依附在其它http server上的开发语言,对学习、使用者而言,除了了解PHP语言本身,还要对你的http server有一定了解,不同server的api各不相同,对要求“精通”编程的程序员来说,并不是一件很简单的事情。node本身是一个js运行环境,用其提供的内置api你能“写”一个非常简单的http server,要做“全功能”http server,有很多的模块及方案,例如express,但总的来说都是node内部的事情,同宗同族。
再次,从web开发角度看,纯服务器端渲染会越来越少。主要是现在终端的性能比较强,浏览器纯从服务器获取HTML显示比较浪费客服端性能,同时又极大增加服务器端负荷,所以在两端适当调整负荷是必然,随着客服端框架的发展,spa应用会越来越多,这有利负荷分担,流量减少,反应速度提高。就算不是spa,(b/c)——s之间的数据都更多地以json/xml进行交互而减少html,本质就是减少服务器端渲染,server更多担负数据中心的角色。对于这种逐步演进的应用,node就比PHP有优势:你可以把代码逐步地从s端向c端转移,直到自己认为合适,包括服务器负载,客户端体验……;而PHP暂时还不行。
最后,node是JavaScript绑定的语言环境,可以看做是一门独立的语言,不但可以做server,还可以做工具,做client,例如nw绑定,electron绑定等,这样你可以有更大的灵活性。
当然,萝卜白菜,做自己喜欢的事情还是最重要的,人家合适的不一定你合适,找到合适的就好。
phpget抓取json怎样去除双引号前面的反斜杠?
你这个不算标准的JSON格式数据,可以先将\"替换成"即可。再用json_decode()系统函数将其转为json对象,如需转为数组加上第二个参数为true即可。
若仍输出为NULL,是由于存在BOM头信息,$arr = json_decode(trim($json,chr(239).chr(187).chr(191)),true);转换即可。
php如何接收json数据?
根据个人理解PHP接收json数据有三种:获取json格式的请求参数;获取json文件中的数据;获取接口返回的寄送数据。下面将一一讲述:1、获取请求参数$input = file_get_contents("php://input");
$input = json_decode($input,true);
var_dump($input);
2、获取文件中的json$jsonStr = file_get_contents('src/xx.json');
$jsonObj = json_decode($jsonStr, true);
3、获取接口返回的json(以post请求为例)function run_curl_json($url, $data, $timeout) {
$data = json_encode($data);
$ch = curl_init($url); //请求的URL地址
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Content-Length: ' . strlen($data)));
$ret = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$jsonObj = json_decode($ret, true);
return ['data' => $jsonObj, 'code' => $httpCode];
}
以上三种方式中获取到的都是json字符串,然后通过json_decode将json字符串转为数组。
ajax于php交互?
会jquery吗,可以先从jquery的ajax入手,会比较简单。ajax写在js脚本里,一般是获取表单的数据(value)然后传到php脚本进行处理,再接受返回的数据。jquery的写法是这样的:js脚本
type是传值的方式,有get和post,php脚本里取值语句也要用对应的方式。url后面的参数是将数据传递到你想要的php脚本路径,这里是相对路径。data是你要传递的数据,一般从表单中娶过来后写成json的形式传递。 datatype是获取数据的格式,success是传递成功后的反馈或者使用接收回来的数据,这里的data参数是php处理后的(你想要的)数据,php那边对应的是echo后面的东西。php脚本:index.php前面两句是取传过来的数据,分别对应了ajax里data的数值,第三句是一个简单的数据处理。最后php脚本的输出值就是echo语句后面的内容,并返回给js脚本里success的function的参数data。jsonpath库函数介绍?
JSONPath用来解析多层嵌套的JSON数据;JSONPath是一种信息抽取类库,是从JSON文档中抽取指定信息的工具,提供多种语言实现版本,包括:JavaScript, Python, PHP和Java。