PHP是现如今十分流行的轻量级语言,经常用来做应用的后端开发,其特点是语法简单,十分容易上手。除了单独做后端,PHP还能够将程序嵌入到HTML文件中执行,非常容易实现简单的前后端交互。而且PHP的运行很轻松,只要下载PHP环境并打开服务,就能通过访问文件的形式执行PHP文件,并且获得其返回的数据了。但是可惜由于很多原因,PHP不太适合复杂和安全性要求高的大应用,所以求职方面,可能不如Java后端等吃香。但是如果你只是需要为自己的应用写个简单的后台,或者是像我一样在学校里做做项目,参加参加比赛,那么PHP还是一个不错的选择的。
 
接下来就正式开始入门内容。首先,基本的语法我就不赘述了,有点编程经验的话自己去看会儿文档,知道个大概就行了,具体的实在不行到时候用到再百度也没事。最核心的就是,被<?php ?> 这个标签包裹下的语句,都会被解析成php代码然后执行。比如下面这个最简单的例子,只要把这个php文件放在PHP环境下,就能够输出内容了。具体的PHP环境安装我就不多说了,常见的有PHPStudy、XAMPP、WAMP等等集成环境,Linux下也只用几条指令就行,也基本上没有什么坑,装好就能直接用了。
 
<?php
echo "Hello World!";
?>
 
明白了PHP大概是怎么运作的,我们就可以利用PHP实现很多功能了,比如说实现最简单的前后端交互,前端通过Ajax发送一个get请求到我们的后端,获取后端返回的数据。
 
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "https://mu-mu.cn/1.php", true);
xmlhttp.send();
xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
console.log(this.responseText);
}
}
 
这里就会出现第一个小问题了,那就是跨域请求,具体的内容我以后有时间希望能够专门写一篇博文来详细地讲,现在就先说个大概吧。首先,域=协议名+主机名+端口号,只要你访问的域中有一个是不同的,那么你的这次请求就是跨域的,这么做是为了安全性,网络世界可不是法外之地,怎么能随随便便想去哪里就去哪里呢。
 
解决的方法很简单,常用的方法有两种。第一种是把前后端放在同一个域下,这样你的后端接口就只处理来自你部署于同一个域下的应用的请求了。第二种方法是后端进行设置,比如添加允许跨域的header头。这样子所有人都能够访问你的后端了,当然也可以设置白名单稍做限制。关于什么是header头以及更多请求的内容,以后有机会再说吧。
 
<?php
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE");
header('Access-Control-Allow-Headers:x-requested-with,content-type');
return "111";
?>
加上header头之后,打开控制台,再次访问,果然就没有问题了,通过这种方式,我们就实现了最简单的向后端获取数据,不过这样子获取到的数据都是静态的写死的,不能满足我们的大多数需求,所以之后还得连接数据库,以及对数据库进行操作。
 
 
获取数据是没问题了,那怎么向后端发送数据呢?其实也很简单,之前讲过Ajax发送数据的简单方法有两种,一种是放在url种,通过GET方法发送,另一种是放在body里面,通过POST方法发送。
//GET方法只需修改url,通过?参数名=值&参数名=值的形式发送数据
xmlhttp.open("GET", "https://mu-mu.cn/1.php?name=mumu", true);
//后端
$name = $_GET['name']; //POST方法 POST发送数据的方式多种多样,可以以表单、json、编码字符等形式发送,只需要设置请求头就可以了
let data = "name=mumu";
xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xmlhttp.send(data);
//同样后端获取前端POST数据的形式也是相应变化的,常见的有两种:
$_POST['fieldname']或者$_REQUEST['fieldname']对应x-www-form-urlencoded,也就是表单发送过来的数据
file_get_contents("php://input");可以获取任何POST数据,但是还要自己对数据进行处理

PHP前后端交互的更多相关文章

  1. Node之简单的前后端交互

    node是前端必学的一门技能,我们都知道node是用的js做后端,在学习node之前我们有必要明白node是如何实现前后端交互的. 这里写了一个简单的通过原生ajax与node实现的一个交互,刚刚学n ...

  2. Django之META与前后端交互

    Django之META与前后端交互 1 提交表单之GET 前端提交数据与发送 1)提交表单数据 2)提交JSON数据 后端的数据接收与响应 1)接收GET请求数据 2)接收POST请求数据 3)响应请 ...

  3. 前后端交互实现(nginx,json,以及datatable的问题相关)

    1.同源问题解决 首先,在同一个域下搭建网络域名访问,需要nginx软件,下载之后修改部分配置 然后再终端下cmd  nginx.exe命令,或者打开nginx.exe文件,会运行nginx一闪而过, ...

  4. springboot+mybatis+thymeleaf项目搭建及前后端交互

    前言 spring boot简化了spring的开发, 开发人员在开发过程中省去了大量的配置, 方便开发人员后期维护. 使用spring boot可以快速的开发出restful风格微服务架构. 本文将 ...

  5. 百度ueditor的图片上传,前后端交互使用

    百度ueditor的使用 一个文本编辑器,看了网上很多文档写的很乱,这里拾人牙慧,整理下怎么使用. 这个东西如果不涉及到图片附件上传,其实很简单,就是几个前端文件,直接引用,然后配置下ueditor. ...

  6. SSM-网站后台管理系统制作(4)---Ajax前后端交互

    前提:Ajax本身就为前后端交互服务的,实现功能:用户输入信息,实时判断用户的情况,这也是现在登录界面普遍流行的做法.前端js通过注释识别Controller层,该层查询返回,和之前Google验证码 ...

  7. 【开源.NET】 轻量级内容管理框架Grissom.CMS(第二篇前后端交互数据结构分析)

    这是 CMS 框架系列文章的第二篇,第一篇开源了该框架的代码和简要介绍了框架的目的.作用和思想,这篇主要解析如何把sql 转成标准 xml 配置文件和把前端post的增删改数据规范成方便后台解析的结构 ...

  8. thinkphp+jquery+ajax前后端交互注册验证

    thinkphp+jquery+ajax前后端交互注册验证,界面如下 register.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1. ...

  9. Servlet实现前后端交互的原理及过程解析

    在日常调试项目时,总是利用tomcat去启动项目,并进行前后端联调,但对于前后端的请求响应的交互原理及过程并不是特别清晰. 为什么在前端发出相应请求,就能跳转到后端通过程序得到结果再响应到前端页面呢? ...

  10. nodejs实现前后端交互

    本人nodejs入门级选手,站在巨人(文殊)的肩膀上学习了一些相关知识,有幸在项目中使用nodejs实现了前后端交互,因此,将整个交互过程记录下来,方便以后学习. 本文从宏观讲述nodejs实现前后端 ...

随机推荐

  1. 使用 IntersectionObserver API 遇到的一些问题

    root 设指定为 document.body 时不会触发更新 See the Pen document.body and IntersectionObserver by y1j2x34 (@y1j2 ...

  2. 2021.01.08 oss is not defined

    背景: 视频点播使用阿里云的oss(Object storage services),然后总是报错oss is not defined, 在网上搜索了一些文章,基本上都是一模一样的,我也就不吐槽啦(这 ...

  3. 国内免费好用的chatgpt在线应用程序

    我们很高兴向大家介绍我们的全新AI微信小程序:AI文案助手,这是一款功能强大的智能助手,可以为您提供多种实用功能. 首先,我们的AI微信小程序拥有一款聊天机器人,能够与您进行自然对话,并为您提供所需的 ...

  4. RPA的应用及工作原理

    通过本章学习,您将了解到: 什么是RPA RPA能做些什么 RPA的应用有什么特点 RPA是怎样进行工作的 RPA怎么实现人机协作 RPA的未来趋势怎么样 什么是RPA RPA是利用软件来执行业务流程 ...

  5. SpringBoot笔记--配置文件分类+yaml相关知识+读取配置文件内容

    配置文件 要是需要使用自己的配置替换默认配置时,需要使用后缀名为application.properties或者application.yml(application.yaml)进行配置 当然,几个文 ...

  6. Android笔记--数据存储之SharedPreferences

    SharedPreferences--轻量级存储工具(共享参数) 其采用的存储结构是Key-Value的键值对方式 SharedPreferences用法以及相关的简单案例 记住密码的实现 实现啦! ...

  7. Android笔记--案例:登录界面以及登录逻辑

    登录界面的实现 就是说,界面的绘制,并没有什么难度,只要控制好空间的分配就可以了 登录的逻辑实现 获取验证码.忘记密码的界面跳转.登录的实现: 确认文本框的输入内容是否符合题意:

  8. 【CS231n assignment 2022】 vscode 环境配置

    文章目录 前言 一.安装 Python 二.安装 vscode 三. cs231n 作业下载 四.配置 vscode 五.虚拟环境包安装 六.数据集 前言 今年成功考上了本校的研究生,要开始进入研究生 ...

  9. Kafka 物理存储机制

    一个商业化消息队列的性能好坏,其文件存储机制设计是衡量一个消息队列服务技术水平和最关键指标之一.下面将从 Kafka文件存储机制和物理结构角度,分析 Kafka是如何实现高效文件存储,及实际应用效果. ...

  10. MyBatisPlus 整合 SpringBoot 遇见的问题(一)

    [异常]:UnsatisfiedDependencyException: Error creating bean with name 'xxx[类]': Unsatisfied dependency ...