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

Web交互

1.Web表单交互

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

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

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

相关学习推荐:PHP编程从入门到精通

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>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

更多相关文章

  1. 分享php生成不重复随机数、数组的4种方法
  2. 学习php中利用explode函数分割字符串到数组
  3. PHP 二维数组排序保持键名不变的方法
  4. 学习PHP查找一列有序数组是否包含某值的方法
  5. 总结PHP字符串与数组处理函数用法
  6. 实例讲解php提交表单关闭layer弹窗iframe
  7. 分析ThinkPHP防止重复提交表单的方法实例
  8. 总结PHP实现提取多维数组指定一列的方法
  9. PHP数组常用函数总结

随机推荐

  1. Android的信号格数显示优化
  2. Android监听消息通知栏点击事件
  3. 分享到某个地方
  4. 使用 Android 和 XML 构建动态用户界面
  5. arm-linux-androideabi-gcc 4.8的选项分
  6. Android UI开发第六篇——仿QQ的滑动Tab
  7. Android:Manifest merger failed with mu
  8. Android多媒体开发 Pro Android(安卓)Med
  9. Android画图 Bitmap
  10. 简单的Android日志文件记录类