[关闭]
@15013890200 2018-08-20T17:38:53.000000Z 字数 1476 阅读 438

PHP 开发那些坑

PHP ajax


笔者的本职工作是web前端,但是由于维护老项目的需要,领导指派我学习PHP,以来维护和模块开发一个极其重要的系统(每年带来的收益超过部门其他系统收益之和)。于是在很长一段时间内,笔者成为部门内唯一会PHP开发的程序员。
作为世界上最优美的语言,PHP有很多它自己的特色
下面笔者谈谈,最近遇到的一些小坑。

背景:由于笔者所在公司的官网是外包出去的。而公司又没有购买官网的源代码,所以笔者在开发新功能的时候总是想骂娘。这不最近,官网商城那帮家伙要求笔者帮他们开发一个可以修改物流信息的页面。功能倒是不复杂,不过中间有不少地雷。

首先,PHP是超文本预处理器语言,不像HTML可以随时随地都能运行看到成果,它需要一定的运行环境才能执行。然而我又没有官网源码,所以没办法在本地调试,也没办法编辑器拉取服务器代码,边修改边调试,在开发上就极其不便利,要想看改动效果,只能将修改过后的代码交给运维人员,人工更新。真的是累人累己!!!!

其次,笔者书写JavaScript语言习惯了,在语法上经常第一时间没有切换过来,比如说字符串的连接,js是用+=连接的,而PHP是用.=连接,这个坑真的想打人,一般写过之后在检查的时候也经常没有发现。

  1. $sql = "update vmc_b2c_delivery set ";
  2. $sql += "logistics_no = '".$delivery_id."'";
  3. echo $sql; // 输出0,+= PHP会处理为数学运算符
  1. $sql = "update vmc_b2c_delivery set ";
  2. $sql .= "logistics_no = '".$delivery_id."'";
  3. echo $sql; // 输出 update vmc_b2c_delivery set logistics_no = '111'

还有就是,在用ajax提交数据的时候,方法指定post,头部指定'application/json'。后台用$_POST 是获取不到数据的。必须通过//input获取输入流在json_decode,简直难受。而post方法又是最经常用到的ajax提交方式。。。

  1. var para = {
  2. "order_id": order_id,
  3. "delivery_id": delivery_id,
  4. "corp_id": corp_id
  5. };
  6. $.ajax({
  7. method: "POST",
  8. url: 'getPost.php',
  9. data: JSON.stringify(para),
  10. contentType: 'application/json'
  11. }).then(function(res){
  12. if(res){
  13. res = JSON.parse(res);
  14. if(res.code == 0){
  15. alert(res.msg);
  16. }
  17. else{
  18. alert(res.msg);
  19. }
  20. }
  21. });
  1. print_r($_POST) //输出array()

在数据量小的时候可以改为get请求:

  1. $.ajax({
  2. method: "GET",
  3. url: 'getPost.php?order_id='+order_id+'&delivery_id='+delivery_id+'&corp_id='+corp_id
  4. }).then(function(res){
  5. if(res){
  6. res = JSON.parse(res);
  7. if(res.code == 0){
  8. alert(res.msg);
  9. }
  10. else{
  11. alert(res.msg);
  12. }
  13. }
  14. });

在PHP开发过程中,还遇到很多坑,但由于之前并没有详细记录过。所以最近才记录相关问题,以后开发过程中遇到也会及时更新。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注