PHP网站制作之PHP输出流input简介
虽说不上很好,但至少一般的数据操作,再在原有的SQL语言的基础上,用得还是可以的。 <p>在利用xml-rpc的时分,server端获得client数据,次要是经由过程php输出流input,而不是$_POST数组。所以,这里次要切磋php输出流php://input对一php://input引见,PHP官方手册文档有一段话对它停止了很明白地概述。
“php://input allows you to read raw POST data. It is a less memory intensive alternative to $HTTP_RAW_POST_DATA and does not need any special php.ini directives. php://input is not available with enctype=”multipart/form-data”.
翻译过去,是如许:
“php://input可以读取没有处置过的POST数据。相较于$HTTP_RAW_POST_DATA而言,它给内存带来的压力较小,而且不需求特别的php.ini设置。php://input不克不及用于enctype=multipart/form-data”
咱们应当怎样去了解这段概述呢?!我把它划分为三局部,慢慢去了解。
1. 读取POST数据
2. 不克不及用于multipart/form-data类型
3. php://input VS $HTTP_RAW_POST_DATA
读取POST数据
PHPer们必定很熟习$_POST这个内置变量。$_POST与php://input存在哪些联系关系与区分呢?别的,客户端向办事端交互数据,最经常使用的办法除POST以外,还有GET。既然php://input作为PHP输出流,它能读取GET数据吗?这二个成绩恰是咱们这节需求切磋的次要内容。
经历告知咱们,从测试与察看中总结,会是一个很凑效的办法。这里,我写了几个剧本来匡助咱们测试。
@file 192.168.0.6:/phpinput_server.php 打印出吸收到的数据
@file 192.168.0.8:/phpinput_post.php 摹拟以POST办法提交表双数据
@file 192.168.0.8:/phpinput_xmlrpc.php 摹拟以POST办法收回xmlrpc恳求.
@file 192.168.0.8:/phpinput_get.php 摹拟以GET办法提交表单表数
phpinput_server.php与phpinput_post.php
<?php
//@file phpinput_server.php
$raw_post_data = file_get_contents('php://input', 'r');
echo "-------\$_POST------------------\n";
echo var_dump($_POST) . "\n";
echo "-------php://input-------------\n";
echo $raw_post_data . "\n";
?>
<?php
//@file phpinput_post.php
$http_entity_body = 'n=' . urldecode('perfgeeks') . '&p=' . urldecode('7788');
$http_entity_type = 'application/x-www-form-urlencoded';
$http_entity_length = strlen($http_entity_body);
$host = '192.168.0.6';
$port = 80;
$path = '/phpinput_server.php';
$fp = fsockopen($host, $port, $error_no, $error_desc, 30);
if ($fp) {
fputs($fp, "POST {$path} HTTP/1.1\r\n");
fputs($fp, "Host: {$host}\r\n");
fputs($fp, "Content-Type: {$http_entity_type}\r\n");
fputs($fp, "Content-Length: {$http_entity_length}\r\n");
fputs($fp, "Connection: close\r\n\r\n");
fputs($fp, $http_entity_body . "\r\n\r\n");
while (!feof($fp)) {
$d .= fgets($fp, 4096);
}
fclose($fp);
echo $d;
}
?>
咱们可以经由过程利用东西ngrep抓取http恳求包(由于咱们需求探知的是php://input,所以咱们这里只抓取http Request数据包)。咱们来履行测试剧本phpinput_post.php聪明的你,显然已经逐渐的开悟了,慢慢的理解了编程的概念,那么祝贺你,你已经迈出了成功的第一步。 如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域, 在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、 我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能: 当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标, 说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。 真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎, 我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。 php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。 在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。 找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。 找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。 学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql 本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。 这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。 Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81 有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。 小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。 对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
页:
[1]