PHP的表单获取与HHTP请求方式

PHP获取表单数据的方法

PHP获取表单数据的方法主要有GET、POST和REQUEST三种方式。

注意,提交表单的方法只有POST和GET两种。POST和GET都可以向Web服务器传输数据。

GET与POST对比

对比GETPOST
附加形式URL之后HTML HEADER
参数处理方式URL编码无URL编码
传输数据的大小小于2kB理论上无限制
安全性用户可见,不安全用户不可见,安全
跨域支持支持
适用场景数据查询数据添加、修改和删除

GET

  • 附加形式:GET方法的数据会附在URL之后(即把数据放置在HTTP协议头中),以“?”分割URL和传递数据,参数之间以“&”连接。使用GET方式时,URL较长,数据可见。

  • 参数处理方式 :GET方法传输参数,如果数据是英文字母/数字,则原样,若数据中包含空格或者汉字,则需要进行编码处理。相关的例子可以看这里提到的问题:URL 编码

  • 传输数据的大小:GET方法传输的数据量较小,不能大于2kB。

提交表单时,method的默认值是”GET”.

POST

  • 附加形式:通过HTTP POST机制,将表单内各个字段与其内容放置在HTML HEADER内一些传送到ACTION属性所指的URL地址,用户看不见过程,也不能直观地看到传输过程

  • 参数处理方式 :POST把提交的数据防止在HTTP包中的包体中,不会对汉字进行URL编码处理。POST 提交的数据必须放在消息主体(entity-body)中,但协议并没有规定数据必须使用什么编码方式。但是,数据发送出去,还要服务端解析。POST 提交数据方案,包含了 Content-Type 和消息主体编码方式两部分。

  • 传输数据的大小:POST方法的传输数据量较大,理论上没有大小限制。

  • Http POST 提交数据的四种方式

    • application/x-www-form-urlencoded (默认常用的)
    • multipart/form-data
    • application/json
    • text/xml,现在几乎不用

      HTTP 协议规定的 HTTP 请求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 这几种。其中 POST 一般用来向服务端提交数据

REQUEST

$_REQUEST变量包含$_GET, $_POST$_COOKIE的内容。

$_REQUEST变量可以用来获取通过“GET”和“POST”这两种方法发送的表单数据。

PHP发送HHTP请求的几种方式

cURL

  • cURL 是一个用来传输数据的工具,支持多种协议,如在 Linux 下用 curl 命令行可以发送各种 HTTP 请求。PHP 的 cURL 是一个底层的库,它能根据不同协议跟各种服务器通讯,HTTP 协议是其中一种。

  • 现代化的 PHP 开发框架中经常会用到一个包,叫做 GuzzleHttp,它是一个 HTTP 客户端,也可以用来发送各种 HTTP 请求,GuzzleHttp 并不依赖 cURL 库,而支持多种发送 HTTP 请求的方式。

stream流的方式

  • 关于 PHP stream 的介绍文章
  • stream_context_create 作用:创建并返回一个文本数据流并应用各种选项,可用于 fopen(), file_get_contents() 等过程的超时设置、代理服务器、请求方式、头信息设置的特殊过程。
  • 以一个post为例

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?php
    /**
    \* Created by PhpStorm.
    \* User: tanteng
    \* Date: 2017/7/22
    \* Time: 13:48
    \*/
    function post($url, $data)
    {
    $postdata = http_build_query(
    $data
    );
    $opts = array('http' =>
    array(
    'method' => 'POST',
    'header' => 'Content-type: application/x-www-form-urlencoded',
    'content' => $postdata
    )
    );
    $context = stream_context_create($opts);
    $result = file_get_contents($url, false, $context);
    return $result;
    }

socket方式

  • 使用套接字建立连接,拼接 HTTP 报文发送数据进行 HTTP 请求。

  • 一个 GET 方式的例子:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
    $fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
    if (!$fp) {
    echo "$errstr ($errno)<br />\n";
    } else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: www.example.com\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
    echo fgets($fp, 128);
    }
    fclose($fp);
    }
    ?>

参考资料

[1] HTTPS 与 SSL 证书概要

[2] 15 张思维导图来快速学习 PHP 语言基础

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/242858.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

产生脉冲之间的延迟

产生脉冲之间的延迟 题目要求 FPGA产生两个输出脉冲&#xff0c;要求这两个脉冲之间的延迟为0.5ns&#xff0c;请描述你的实现方案 题目分析 1 使用计数器延迟不太可能&#xff0c;FPGA内部逻辑没有一个专用的delaybuffer。 2 IOB (input output block) iodelay。去实现小分辨…

Chipscope使用

作者&#xff1a;桂。 时间&#xff1a;2017-08-07 06:47:31 链接&#xff1a;http://www.cnblogs.com/xingshansi/p/7297482.html 前言 Chipscope在FPGA调试中被用来观察内部信号&#xff0c;程序里加入Chipscope相当于有了数字示波器。 本文主要记录Chipscope的基本操作&…

学习网址汇总

编程相关的学习网站&#xff1a;网络编程网站开发教程大全&#xff0c;内含有大量的参考手册&#xff0c;博文阅读&#xff0c;优质项目、在线工具、在线代码、开放平台等&#xff0c;囊括PHP、SQL、HTML、JS等w3school&#xff0c;你可以找到你所需要的所有的网站建设教程&…

设计FIFO深度

设计FIFO深度 假设FIFO的写时钟为100MHZ&#xff0c;读时钟为80MHZ。在FIFO输入侧写数据侧&#xff0c;每100个时钟&#xff0c;写入80个数据&#xff0c;FIFO读出侧每个时钟读出一个数据。设计合理的FIFO深度&#xff0c;使FIFO不会溢出。 如果读出侧每3个时钟读出1个数据&am…

银行假流水怎么识破?

银行流水作为借款人最有效的还款证明&#xff0c;审核的时候一定要特重视&#xff0c;特别是要注意区分借款人的假流水。&#xff08;1&#xff09;真假流水有哪些特征真流水特征&#xff1a;银行流水能真实的反映借款人的工作或生意情况&#xff0c;能从借款人的生意来往合同中…

无线通信上课笔记

无线通信课上笔记无线通信的概念无线通信&#xff08;Wireless Comminication&#xff09;是利用电磁波信号可以在自由空间中传输的特性进行信息交换的一种通信方式&#xff0c;无线通信与有线通信相对。特点&#xff1a;新、快、移动通信&#xff1a;在移动中实现无线通信&…

Qt5 中的 signal/slot 新语法

Qt 5 Alpha 已经发布。我们会在后面的文章中看到 Qt 5 的新变化。今天&#xff0c;我们先来看一下 Qt 5 带来的一个最主要的变化&#xff1a;signal/slot 机制的改变。Qt 5 之前的语法 在 Qt 5 之前&#xff0c;我们需要使用下面的语句来链接 signal 和 slot&#xff1a; 12con…

模拟电子技术基础笔记

模拟电子技术基础笔记 二极管的特性 1 单向导电性&#xff08;小写是交流&#xff0c;大写是直流&#xff09; 二极管的应用 1、整流二极管 利用二极管单向导电性&#xff0c;可以把方向交替变化的交流电变换成单一方向的脉动直流电。 2、开关元件 二极管在正向电压作用下电阻…

国家标准GB7665-87传感器

传感器的定义“能感受规定的被测量并按照一定的规律转换成可用信号的器件或装置&#xff0c;通常由敏感元件和转换元件组成”。 传感器是一种检测装置&#xff0c;能感受到被测量的信息&#xff0c;并能将检测感受到的信息&#xff0c;按一定规律变换成为电信号或其他所需形式的…

simulink简介

simulink简介 simulink是基于matlab的框图设计环境&#xff0c;可以用来对各种动态系统进行建模、分析和仿真&#xff0c;它的应用领域十分广泛&#xff0c;任何能用数学模型来描述的系统都可以在simulink中进行仿真分析&#xff0c;如:空气动力学、导航制导、通讯、电子、机械…

商务英语老师给的6个建议

作为学了多年学习英语&#xff0c;应该做这些研读两套英语教材&#xff08;大学英语剑桥商务英语&#xff09;读两本小薄本&#xff08;两个英语原著&#xff09;独立看两部英语原版电影学习一个国外的语言文化&#xff0c;至少会唱两首英文歌&#xff08;圣诞歌会唱&#xff0…

C++ 11 在 Qt 5 中的应用

C 11 现在已经是 C 标准&#xff0c;也就没有理由不在新的应用中使用。Qt 4.8 是第一个支持 C 11 特性的 Qt 版本&#xff0c;不过这里&#xff0c;我们首先介绍的是&#xff0c;Qt 5 中如何结合使用 C 11。至于 Qt 4.8&#xff0c;我们会在后续文章中进行阐述。 显而易见的是&…

多媒体表示、描述、编码以及通信的相关规定和标准课程总结

时间&#xff1a;2016.10.11-2016. 11.3注意关注会议机构ITU&#xff08;国际电信联盟&#xff09; MPEG&#xff1a; Moving Picture Experts Group&#xff0c;动态图像专家组, 是ISO&#xff08;International Standardization Organization&#xff0c;国际标准化组织&…

建模与仿真的流程

建模与仿真的流程 以例子为例 第一步&#xff1a;建立模型&#xff0c;列出输出表达式 第二步&#xff1a;解出输出方程 可以参考&#xff1a;解单位冲激 第三步&#xff1a;在simulink中建立仿真图 ctrlr&#xff1a;表示旋转90 按住ctrl可以引出多条线 点击保存&…

AD制图相关问题总结

AD制图总体步骤新建一个工程文件File ->New->Project->PCB.Project->save新建原理图在此工程目录下新建原理图与PCB并保存 File ->New->Schematic->save生成PCB&#xff08;前提是原理图已完成且没有错误&#xff09;File->New-> PCB->save&…

vcs 入门

synopsys vcs 软件是仿真和验证的软件&#xff0c;必须掌握。 vcs 即 verilog compile simulator 支持 verilog, systemVerilog, openvera, systemC等语言&#xff0c;同时也有代码覆盖率检测等功能。 可以合第三方软件集合使用&#xff0c;例如 Vera , Debussy &#xff0c;S…

输入输出及子模块

输入输出及子模块 常用模块库 1 事先规划好功能子系统 2 建立好系统后对系统进行功能划分 在进行动态系统的建模过程中&#xff0c;可以根据需要将模型中比较复杂&#xff0c;或者共同完成某一功能的基本模块&#xff08;低一层次的子系统&#xff09;封装起来&#xff0c;并…

使用Hexo搭建博客步骤详解

简介hexo —— 简单、快速、强大的Node.js静态博客框架。Hexo 使用 Markdown&#xff08;或其他渲染引擎&#xff09;解析文章&#xff0c;在几秒内&#xff0c;即可利用靓丽的主题生成静态网页。 特性风一般的速度Hexo基于Node.js&#xff0c;支持多进程&#xff0c;几百篇文章…

32个最热CPLD-FPGA论坛

1. OPENCORES.ORG 这里提供非常多&#xff0c;非常好的PLD了内核&#xff0c;8051内核就可以在里面找到。进入后&#xff0c;选择project或者由http//www.opencores.org/browse.cgi/by_category进入。对于想了解这个行业动态人可以看看它的投票调查。http://www.opencores.org/…

师兄师姐就业分享会

华为算法工程师自我定位&#xff08;找一个岗位&#xff0c;好好准备)&#xff1b; 来自当年带我走上这条路的学长 。算法工程师对学术要求比较高&#xff0c;发过高水平论文优势很大 通常是月薪14k以上&#xff0c;年薪20万以上&#xff0c;只是一个概数&#xff0c;具体薪资详…