加入收藏 | 设为首页 | 会员中心 | 我要投稿 济源站长网 (https://www.0391zz.cn/)- 数据工具、数据仓库、行业智能、CDN、运营!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2022-07-20 07:42:58 所属栏目:PHP教程 来源:互联网
导读:本文实例讲述了PHP与Web页面交互操作。分享给大家供大家参考,具体如下: Web交互 1.Web表单交互 当表单的method属性提交方式为POST时,浏览器发送POST请求 当表单的method属性提交方式为GET时,浏览器发送GET请求 当PHP收到来自浏览器提交的数据后,会自动
  本文实例讲述了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(“123n456”, 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?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。

(编辑:济源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读