PHP与Web页面交互操作实例分析

本文实例讲述了PHP与Web页面交互操作。分享给大家供大家参考,具体如下:

Web交互

1.Web表单交互

  • 当表单的method属性提交方式为POST时,浏览器发送POST请求
  • 当表单的method属性提交方式为GET时,浏览器发送GET请求
    当PHP收到来自浏览器提交的数据后,会自动保存到超全局变量中。

超全局变量是PHP预定义好的变量,可以再PHP脚本的任何位置使用

  • 常见的超全局变量数组变量有$ _POST、$_GET等
  • 通过POST方式提交的数据会保存到$_POST中
  • 通过GET方式提交的数据会保存到$_GET中

2.URL参数交互

当表单以GET方式提交时,会将用户填写的内容放在URL参数中进行提交。
表单的method属性删除(或将其值改为get),然后提交表单,会得到如下URL。

  • "?"后面的内容为参数信息
  • 参数是由参数名和参数值组成的,中间使用等号“=”进行连接
  • 多个参数之间使用“&”分隔
  • username和password是参数名,对应表单中的name属性
  • test和123456是参数值,对应用户填写的内容
    if (isset($_GET['username']) && isset($_GET['password'])) {
     echo $_GET['username']; // 输出结果:	test
     echo $_GET['password']; // 输出结果:123456
    }
    

3.数组方式提交数据

  • 复选框是一种支持提交多个值的表单控件
  • 在编写表单时应将其 name属性设置为数组
    <input type="checkbox" name="hobby[]" value="swimming"> 游泳
    <input type="checkbox" name="hobby[]" value="reading"> 读书
    <input type="checkbox" name="hobby[]" value="running"> 跑步
    print_r($_POST['hobby']);
    

  • $_POST中的hobby元素是一个索引数组,数组中的元素是用户所选复选框对应的value属性值
  • 当用户未选中任何复选框时,$_POST数组中将不存在hobby元素
    <!-- 表单控件 -->									// 接收代码
    <input type="text" name="user[name]">				$_POST['user']['name'];
    <input type="text" name="user[a][1]">				$_POST['user']['a'][1];
    <input type="text" name="user[1][b]">				$_POST['user'][1]['b'];
    <input type="text" name="user[c][]">				$_POST['user']['c'][0];
    <input type="text" name="user[][d]">				$_POST['user'][2]['d'];
    <input type="text" name="user[][]">					$_POST['user'][3][0];
    <input type="text" name="user[3][][]">				$_POST['user'][3][1][0];
    <input type="text" name="user[3][][]">				$_POST['user'][3][2][0];
    <input type="text" name="user[][][2]">				$_POST['user'][4][0][2];
    <input type="text" name="user[4][0][]">				$_POST['user'][4][0][3];
    

  • 当需要处理的表单内容非常多的情况下,表单中name属性的命名可以采用多维数组的形式,便于开发,其使用方式与PHP中的数组非常相似
  • 例如,开发在线考试系统时,表单中有填空题、单选题、多选题、判断题等多种题型,这时可以将每种题型放到一个数组里面进行提交,PHP收到后分别遍历每种题型的数组即可。

4.HTML特殊字符处理

在将用户输入的内容输出到HTML中显示时,会遇到特殊字符问题。
例如,用户提交一段HTML代码时,为了将代码原样显示,需要将里面的特殊字符串转换为实体字符,防止被浏览器解析
若没有对这些特殊字符进行处理,会给网站的安全带来风险。
为了解决这类问题,PHP提供了许多专门处理HTML特殊字符的函数

  • nl2br(),echo nl2br(“123\n456”, false);
  • strip_tags()可以去除字符串中的标记部分,通常用于读取一段HTML代码后,去除其中的HTML标记,只保留文本。
    	$html = <<<'EOD'
    	<ul><li>苹果</li><li>香蕉</li></ul>
    	123<test>456</test><aaa>789
    	EOD;
    	echo strip_tags($html);
    	//输出结果
    	苹果香蕉
    	123456789
    

  • 转换和还原字符串中的HTML特殊字符,
    htmlspecialchars()和htmlspecialchars_decode()函数分别用于转换和还原字符串中的HTML特殊字符,具体包括“&”、单引号、双引号、“<”、“>”,其中单引号需要将函数的第2个参数设置为ENT_QUOTES常量才会进行转换。

    $html = "123<br>4'56";
    $html = htmlspecialchars($html, ENT_QUOTES | ENT_HTML5);
    echo $html, "\n";
    $str = htmlspecialchars_decode($html, 	ENT_QUOTES | ENT_HTML5);
    echo $html;
    //输出结果
    123&lt;br&gt;4&apos;56
    123<br>4'56
    

  • urlencode()和urldecode()函数,urlencode()和urldecode()函数主要用于在HTML中输出URL参数时进行编码转换,前者用于编码,后者用于解码。
    注意,当使用$_GET接收参数时,获得的数据已经是URL解码后的结果,无需手动进行处理。

    $name = 'A&B C';
    $name = urlencode($name);	// URL 编码
    echo "http://localhost/test.php?name=$name", "\n";
    echo urldecode($name);		// URL解码
    //输出结果
    http://localhost/test.php?name=A%26B+C
    A&B C
    

  • http_build_query(),利用http_build_query()函数可以将PHP关联数组转换为URL参数字符串。
    $params = [
    'name' => 'test',
    'hobby' => ['reading', 'running']
    ];
    $query = http_build_query($params);
    echo "http://localhost/test.php?$query";
    //输出结果
    http://localhost/test.php?name=test&hobby%5B0%5D=reading&hobby%5B1%5D=running
    

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php程序设计安全教程》、《php安全过滤技巧总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

(0)

相关推荐

  • PHP与Web页面的交互示例详解二

    前言 在<PHP学习笔记-PHP与Web页面的交互1>笔记中讲解了form表单的一些属性,包括它的输入域标记.选择域标记和文字域标记的写法,接下来的内容就是讲如何获取表单数据以及PHP数据的传递,包括对各种控件值的获取. 插入表单 提交表单之前一定得有表单,当我们的表单创建完毕后可以将表单插入Web页中,代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://w

  • PHP与Web页面的交互示例详解一

    前言 这篇笔记记录的是Web表单的相关操作,Web表单主要用来在网页中发送数据到服务器.比如在日常开发中,提交注册时需要提交表单,表单从客户端传送到服务器,经过服务器处理后,再将用户所需要的信息传递回客户端,进而实现PHP与Web表单的交互. 表单 使用<form>元素,并在其中插入相关的表单元素,即可创建一个表单. 表单结构: <form name="form_name" method="method" action="url"

  • PHP与Web页面交互操作实例分析

    本文实例讲述了PHP与Web页面交互操作.分享给大家供大家参考,具体如下: Web交互 1.Web表单交互 当表单的method属性提交方式为POST时,浏览器发送POST请求 当表单的method属性提交方式为GET时,浏览器发送GET请求 当PHP收到来自浏览器提交的数据后,会自动保存到超全局变量中. 超全局变量是PHP预定义好的变量,可以再PHP脚本的任何位置使用 常见的超全局变量数组变量有$ _POST.$_GET等 通过POST方式提交的数据会保存到$_POST中 通过GET方式提交的

  • javascript性能优化之DOM交互操作实例分析

    本文实例讲述了javascript性能优化之DOM交互操作技巧.分享给大家供大家参考,具体如下: 在javascript各个方面,DOM毫无疑问是最慢的一部分.DOM操作与交互要耗费大量时间,因为它们往往需要重新渲染整个页面或者某一部分.理解如何优化与DOM的交互可以极大提高脚本完成的速度. 1.最小化DOM更新 看下面例子: var list = document.getElementById("ul"); for (var i=0; i < 10; i++){ var ite

  • 微信小程序之事件交互操作实例分析

    本文实例讲述了微信小程序之事件交互操作.分享给大家供大家参考,具体如下: 微信小程序-点击事件 什么是事件? 指点击,触摸,按下,滑动,松开,等一系列对手机屏幕操作. 下面代码所要呈现的效果就是给两个按钮一人一个ID然后点击谁,在上面显示信息那就显示 点击了谁,点击了多少次,这多少次没有分开啊,次数是点击他两的总和.下面另一代码是分开的,各计各的. 1. 在index.wxml 中设置点击事件(测试时需要删除注释部分) <view class="page"> //点击后在这

  • AngularJS实现与Java Web服务器交互操作示例【附demo源码下载】

    本文实例讲述了AngularJS实现与Java Web服务器交互操作的方法.分享给大家供大家参考,具体如下: AngularJS是Google工程师研发的产品,它的强大之处不是几句话就能描述的,只有真正使用过的人才能体会到,笔者准备在这篇文章中,以一个简单的登录校验的例子说明如何使用AngularJs和Web服务器进行交互. 准备工作 1.下载angular js库. 官网下载地址:https://angularjs.org/ 或者点击此处本站下载. 2.开发环境准备,由于是和Tomcat服务器

  • python通过opencv调用摄像头操作实例分析

    实例源码: #pip3 install opencv-python import cv2 from datetime import datetime FILENAME = 'myvideo.avi' WIDTH = 1280 HEIGHT = 720 FPS = 24.0 # 必须指定CAP_DSHOW(Direct Show)参数初始化摄像头,否则无法使用更高分辨率 cap = cv2.VideoCapture(0, cv2.CAP_DSHOW) # 设置摄像头设备分辨率 cap.set(cv

  • PHP与Web页面交互例子的实现

    目录 1. HTML 部分 2. PHP 部分 3. 执行结果如下所示 1. HTML 部分 1.1 新建 10-29.html 文件 1.2 引用 PHP 文件(10-29.PHP) <form name="form1" action="10-29.php" method="post"> 1.3 html 主体部分 <form name="form1" action="10-29.php"

  • IIS7中Web.config的rewrite实例分析讲解,教你看懂重写规则

    本文详细介绍解释了IIS7 Web.config rewrite规则设置url重写功能,通过讲解实例的语法结构和标签用法,搭配一些简单的正则表达式,你可以写出符合自己要求的重写规则. 首先请注意,本文适用IIS7及以上rewrite重写功能. 同样要注意的是,要实现在 Web.config 的rewrite重写功能,你必须先安装 URL_Rewrite 重写模块. 下面是本文要介绍的内容,如何通过 Web.config 的rewrite规则,设置url重写功能. 实例代码 <?xml versi

  • PHP页面跳转操作实例分析(header方法)

    本文实例分析了PHP页面跳转操作.分享给大家供大家参考,具体如下: 跳转 header()为php函数,向浏览器发送指定命令 html: <meta http-equiv="Refresh" content="3;url=other.php"/> 立即跳转: header('Location:other.php'); //file_put_contents('bee.txt','execute'); die; 执行header时候,并不是立即结束,而是会

  • 微信小程序页面间传值与页面取值操作实例分析

    本文实例讲述了微信小程序页面间传值与页面取值操作.分享给大家供大家参考,具体如下: 微信小程序页面间传值 1.js页面间的传值:url: ' 路径 ? 值='+ 获取该页面取值, 实例1: pageSkip :function(){ wx.navigateTo({ url: '/page/login/facte?shopsName='+this.data.shopsName, }) }, 实例2: pageSkip :function(){ wx.navigateTo({ url: '/page

  • layui框架中layer父子页面交互的方法分析

    本文实例讲述了layui框架中layer父子页面交互的方法.分享给大家供大家参考,具体如下: layer是一款近年来备受青睐的web弹层组件,官网地址是:http://layer.layui.com/ 可以从官网上下载最新版本. 还可点击此处本站下载. 当layer以iframe层的方式弹出新的窗口(子页面),如何在子页面中访问父页面的元素和函数. 1.访问父页面元素值 var parentId=parent.$("#id").val();//访问父页面元素值 2.访问父页面方法 va

随机推荐