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. [代码片段] 获取分辨率DPI和像素、毫米、英寸互相转换

    private static float DEFAULT_DPI_X = 0; private static float DEFAULT_DPI_Y = 0; /// <summary>获 ...

  2. 20181302编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能

    MyOD 一.任务详情 1 复习c文件处理内容 2 编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能 3. main与其他分开,制作静态库和动态库 4. 编写Ma ...

  3. Go_day08

    Go的Io流 获取文件信息 //获取文件 fileinfo, err := os.Stat("./aa.txt")//相对绝对路径都可以 if err != nil { fmt.P ...

  4. 记一次FusionCompute安装springboot应用过程

    客户给了一个地址,登录后发现是FusionCompute 的一个虚拟机,第一次使用,于是过了一下在线帮助文档 ,大概明白了. 因为客户已经创建完了裸机虚拟机,前面的过程我也不会太多关注. 在概要里,可 ...

  5. ASP.NET Core - 配置系统之自定义配置提供程序

    4. 自定义配置提供程序 在 .NET Core 配置系统中封装一个配置提供程序关键在于提供相应的 IconfigurationSource 实现和 IConfigurationProvider 接口 ...

  6. Github说明--如何在Github里面上传自己的代码

    1.注册一个账号 这是必须的啦!不清楚注册步骤的,可以去看看我之前的博客,里面的步骤也是挺详细的呢! 2.进入到用户主界面 我们会看到这样的一个+标识: 选择其中的New Repository选项,点 ...

  7. 干货来袭!3天0基础Python实战项目快速学会人工智能必学数学基础全套(含源码)(第3天)概率分析篇:条件概率、全概率与贝叶斯公式

    第1天:线性代数篇:矩阵.向量.实战编程 第2天:微积分篇:极限与导数.梯度下降.积分.实战编程 第3天:概率分析篇:条件概率与全概率.贝叶斯公式.实战项目 目录 前言 一.概率与机器学习 1.1 概 ...

  8. Redis使用ZSET实现消息队列使用总结一

    转载请注明出处: 目录 1.zset为什么可以做消息队列 2.zset实现消息队列的步骤 3.使用jedis实现消息队列示例 4.+inf与-inf 5.redis使用list与zset做消息队列有什 ...

  9. mysql解决错误:ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0

    很简单,打开任务管理期的服务. 然后右键重启服务,再重开软件就好了.

  10. 顺应潮流,解放双手,让ChatGPT不废话直接帮忙编写可融入业务可运行的程序代码(Python3.10实现)

    众所周知,ChatGPT可以帮助研发人员编写或者Debug程序代码,但是在执行过程中,ChatGPT会将程序代码的一些相关文字解释和代码段混合着返回,如此,研发人员还需要自己进行编辑和粘贴操作,效率上 ...