网络编程
位置:首页>> 网络编程>> php编程>> PHP与Web页面交互操作实例分析

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

作者:Cat family  发布时间:2023-09-05 14:43:16 

标签: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。
PHP与Web页面交互操作实例分析

  • "?"后面的内容为参数信息

  • 参数是由参数名和参数值组成的,中间使用等号“=”进行连接

  • 多个参数之间使用“&”分隔

  • 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特殊字符的函数
PHP与Web页面交互操作实例分析

  • nl2br(),echo nl2br(“123\n456”, false);

  • strip_tags()可以去除字符串中的标记部分,通常用于读取一段HTML代码后,去除其中的HTML标记,只保留文本。

    $html = <<<'EOD'<ul><li>苹果</li><li>香蕉</li></ul>123<test>456</test><aaa>789EOD;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;56123<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+CA&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程序设计有所帮助。

来源:https://blog.csdn.net/qq_41254184/article/details/89035002

0
投稿

猜你喜欢

  • Gradio 是做什么的?先决条件:Gradio 需要 Python 3.7 或更高版本,仅此而已!gradio.app/quickstar
  • 应用场景:工作中经常遇到大量的数据需要整合、去重、按照特定格式导出等情况。如果用 Excel 操作,不仅费时费力,还不准确,有么有更高效的解
  • 写完“无序列表”和“有序列表”之后已经有人和我说这两篇看得没什么意思。这两篇文章如果只以单向读取的形式阅读那么的确是没什么意思,但是这两篇重
  • 我在传递数据的时候老是出错,请问如何处理?不管是什么数据库,一般来说,是它所包含引号的字符串带来的问题。假设我们使用名为“strDate”的
  • 背景:在做项目时,经常会遇到这样的表结构在主表的中有一列保存的是用逗号隔开ID。如,当一个员工从属多个部门时、当一个项目从属多个城市时、当一
  • 本文实例讲述了php利用cookies实现购物车的方法。分享给大家供大家参考。具体分析如下:php购物车是在电子商务网站会用到的,一种像超市
  • 本文给出了几个表单常用的js验证函数,有检查、\等特殊字符的,有检查是否含有空格,检查是否为Email 地址,也有检查是否是小数或负数的,检
  • 发现很多朋友对 CSS 的优先权不甚了解,规则很简单。需要说明的一点,如果你的样式管理需要深层判断 CSS 的优先权,更应反思自己的 CSS
  • 在java中一个hashCode算法,可以用来计算一个字符串的hash值,今天一个朋友突然问俺能不能在js中计算hashCode,要求和ja
  • 首先要说明的是,这个标题有点标题党的意思,这个 bug 也存在于 IE8 下,在 IE6 和 IE7 下正常。之前写过两篇关于 I
  • 最近自己很关注文档的撰写,包括如何制作PPT。因为发现自己在表达想法和观点的时候,从自己的语言到文字都异常的欠缺。常常需要“高人”帮忙翻译。
  • CacheControl 属性设置是否可缓存由 ASP 生成的输出。默认地,代理服务器不会保持缓存副本。语法:response.CacheC
  • 网上给出了各种方法,都无碍乎先切换到Python脚本所在目录,然后输入Python脚本名称并回车,本文这里给出了更简便的方法。方法一:进入P
  • 深底色风格的页面设计很受欢迎,它可以创造出别致优雅、极富创造力的效果。深底色设计适用于许多网站类型,但并非所有。这种风格应该在恰当的条件下使
  • 这篇文章主要介绍了python中如何使用insert函数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的
  • 安装时建议你为MySQL管理创建一个用户和组。由该组用户运行mysql服务器并执行管理任务。(也可以以root身份运行服务器,但是不推荐)第
  • 设计网站的同志背景主要有两种:学计算机、学艺术。基本上会写代码的不懂设计,会设计的不懂代码,这个格局似乎到今天还没变。某些学计算机的同学,有
  • QQ影音新版发布官网Banner经过两周的酝酿、脑爆与设计调整,于20日顺利上线,连续7天,经历了昨天激动人心的最后发布,到此告一段落,这里
  • django模板使用media文件夹,想要在前端通过{{ MEDIA_URL }}无法显示图片,没有取到Media_url的值解决办法:TE
  • 当需要制作转动鼠标滚轮放大页面字体这样的交互效果时,会用到 Mousewheel 事件。其实在大多数浏览器(IE6, IE7, IE8, O
手机版 网络编程 asp之家 www.aspxhome.com