PHP开发心得四

1,php返回给html页面的Json数据不能含有回车符

某次用php编写查询数据库数据,以json格式返回给前端页面js文件,js文件以angularJS的函数调用处理的方式进行数据显示,但数据返回正常,angularJS的函数调用却直接进入了.error而不是.success。

错误信息是:undefined。一时不清楚问题出现在哪里。

 

几经调试,才发现是json数据中含有回车符,这些特殊字符必须处理后。前端才能正常解析json数据。因此,调用如下函数处理后正常:

$json_string=str_replace(PHP_EOL, ' ', $json_string); 
echo $json_string; 

2,php接收到的参数含有乱码

在网页js代码中如果不进行编码,直接取值进行传送,那么后台PHP接收到的汉字会变成乱码

        $scope.DoQuery = function(pageNum) {
          $http.get(
            'getWS_reginfo.php?ParkID='+sessionStorage.getItem('ParkID')
            + '&parkname='+document.getElementById('parkname').value
            + '&address='+document.getElementById('address').value            
            + '&pageno='+pageNum
            )

接收的URL如下:

http://localhost/getWS_reginfo.php?ParkID=0000000002&parkname=&address=�䗝&pageno=0

为解决此问题,在js中对汉字参数进行编码,再传输即可,PHP端不用做任何处理:

        $scope.DoQuery = function(pageNum) {
          $http.get(
            'getWS_reginfo.php?ParkID='+sessionStorage.getItem('ParkID')
            + '&parkname='+encodeURI(document.getElementById('parkname').value)
            + '&address='+encodeURI(document.getElementById('address').value)            
            + '&pageno='+pageNum
            )

此时,如果前端address参数输入“广州”二字,则PHP接收的URL如下,PHP的$_GET['address']函数能取得正确的参数:

http://localhost/getWS_reginfo.php?ParkID=0000000002&parkname=&address=%E5%B9%BF%E5%B7%9E&pageno=0
原文地址:https://www.cnblogs.com/jackkwok/p/6931636.html