zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    docker 安装 clickhouse单机版
    CockRoachDB简介
    Ubuntu18.04 LTS Cockroach集群搭建
    ClickHouse 的一些优化参数
    ClickHouse 概念整理
    OOM Killer机制
    win10系统下载地址
    Quartz.Net在C#中的使用
    JavaScript的undefined与null、NaN的区别
    Java Web基础回顾 —JSP
  • 原文地址:https://www.cnblogs.com/jackkwok/p/6931636.html
Copyright © 2011-2022 走看看