本文实例讲述了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<br>4'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", "\n"; echo urldecode($name); // URL解码 //输出结果 http://localhost/test.php"htmlcode">
$params = [ 'name' => 'test', 'hobby' => ['reading', 'running'] ]; $query = http_build_query($params); echo "http://localhost/test.php"; //输出结果 http://localhost/test.php"_blank" href="//www.jb51.net/Special/136.htm">php程序设计安全教程》、《php安全过滤技巧总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]