好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

包含php构造http报文的词条

很多站长朋友们都不太清楚php构造http报文,今天小编就来给大家整理php构造http报文,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 怎么用PHP发送HTTP请求 2、 php如何做一个可以通过http请求的页面,麻烦给一个可以通过测试的代码,谢谢了 3、 php实现httpRequest的方法 怎么用PHP发送HTTP请求

方法一:利用php的socket编程来直接给接口发送数据来模拟post的操作。

建立两个文件post.php,getpost.php

post.php内容如下:

<?php

$flag = 0;

$post = '';

$errno = '';

$errstr = '';

//要post的数据

$argv = array(

'var1'=>'abc',

'var2'=>'how are you , my friend??');

//构造要post的字符串

foreach ($argv as $key=>$value) {

if ($flag!=0) {

$post .= "";

$flag = 1;

}

$post.= $key."="; $post.= urlencode($value);

$flag = 1;

}

$length = strlen($post);

//创建socket连接

$fp = fsockopen("localhost",81,$errno,$errstr,10) or exit($errstr."--->".$errno);

//构造post请求的头

$header = "POST /flandy/getpost.php HTTP/1.1\r\n";

$header .= "Host:127.0.0.1\r\n";

$header .= "Referer:/flandy/post.php\r\n";

$header .= "Content-Type: application/x-www-form-urlencoded\r\n";

$header .= "Content-Length: ".$length."\r\n";

$header .= "Connection: Close\r\n\r\n";

//添加post的字符串

$header .= $post."\r\n";

//发送post的数据

fputs($fp,$header);

$inheader = 1;

while (!feof($fp)) {

$line = fgets($fp,1024); //去除请求包的头只显示页面的返回数据

if ($inheader ($line == "\n" || $line == "\r\n")) {

$inheader = 0;

}

if ($inheader == 0) {

echo $line;

}

}

fclose($fp);

?>

getpost.php的内容如下

<?php

echo "this is the data posted";

echo "<pre>";

print_r($_REQUEST);

echo "</pre>";

?>

结果输出:

this is the data posted

Array

(

[var1] => abc

[var2] => how are you , my friend??

)

以上代码在本机81端口下已经通过测试。

方法二:

使用PHP的curl扩展或HttpClient.class.php类,这两个非常类似,下面简单的列出curl的实现代码。

两个文件post2.php和getpost2.php

post2.php的内容如下:

<?php

$psecode = ’NDE005’;

$website = ’’;

$amt = 1;

$pwd = 123456;

$ch = curl_init();

$curl_url = "" . $website .

"pwd=" . $pwd . "action=checkpseid=" . $psecode .

"amt=" . $amt;

curl_setopt($ch, CURLOPT_URL, $curl_url);

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//不直接输出,返回到变量

$curl_result = curl_exec($ch);

$result = explode(',', $curl_result);

curl_close($ch);

print_r($result);

?>

getpost2.php的内容如下:

<?php

echo "returndata<br>";

echo "<pre>";

print_r($_REQUEST);

echo "</pre>";

?>

结果输出:

Array ( [0] => returndataArray

(

[web] => ’wwwbaiducom’

[pwd] => 123456

[action] => check

[pseid] => ’NDE005’

[amt] => 1

)

)

php如何做一个可以通过http请求的页面,麻烦给一个可以通过测试的代码,谢谢了

不知道你具体的需求是什么,PHP实现http请求有许多方法,实现的效果是不同的,最简单的是直接把url作为文件进行打开,例如下面的代码,你看看能否满足你的需求:

$text=file_get_contents('http:开头的网络地址');

echo $text;//显示网页内容

php实现httpRequest的方法

这篇文章主要介绍了php实现httpRequest的方法,涉及php操作http的技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了php实现httpRequest的方法。分享给大家供大家参考。具体如下:

想从学校图书馆的网站上抓取数据处理之后在返回给浏览器,试了不少方法。首先试了http_request(),但是这个学院pecl_http支持,后来又试了网上流传甚广的class

HttpRequest,可能是我不会使用,也失败了。后来看到了函数httpRequest($url,

$post='',

$method='GET',

$limit=0,

$returnHeader=FALSE,

$cookie='',

$bysocket=FALSE,

$ip='',

$timeout=15,

$block=TRUE),用它成功了,因此贴出来分享一下。函数代码如下:

代码如下:

<?php

/**

*

Respose

A

Http

Request

*

*

@param

string

$url

*

@param

array

$post

*

@param

string

$method

*

@param

bool

$returnHeader

*

@param

string

$cookie

*

@param

bool

$bysocket

*

@param

string

$ip

*

@param

integer

$timeout

*

@param

bool

$block

*

@return

string

Response

*/

function

httpRequest($url,$post='',$method='GET',$limit=0,$returnHeader=FALSE,$cookie='',$bysocket=FALSE,$ip='',$timeout=15,$block=TRUE)

{

$return

=

'';

$matches

=

parse_url($url);

!isset($matches['host'])

$matches['host']

=

'';

!isset($matches['path'])

$matches['path']

=

'';

!isset($matches['query'])

$matches['query']

=

'';

!isset($matches['port'])

$matches['port']

=

'';

$host

=

$matches['host'];

$path

=

$matches['path']

?

$matches['path'].($matches['query']

?

'?'.$matches['query']

:

'')

:

'/';

$port

=

!empty($matches['port'])

?

$matches['port']

:

80;

if(strtolower($method)

==

'post')

{

$post

=

(is_array($post)

and

!empty($post))

?

http_build_query($post)

:

$post;

$out

=

"POST

$path

HTTP/1.0rn";

$out

.=

"Accept:

*/*rn";

//$out

.=

"Referer:

$boardurlrn";

$out

.=

"Accept-Language:

zh-cnrn";

$out

.=

"Content-Type:

application/x-www-form-urlencodedrn";

$out

.=

"User-Agent:

$_SERVER[HTTP_USER_AGENT]rn";

$out

.=

"Host:

$hostrn";

$out

.=

'Content-Length:

'.strlen($post)."rn";

$out

.=

"Connection:

Closern";

$out

.=

"Cache-Control:

no-cachern";

$out

.=

"Cookie:

$cookiernrn";

$out

.=

$post;

}

else

{

$out

=

"GET

$path

HTTP/1.0rn";

$out

.=

"Accept:

*/*rn";

//$out

.=

"Referer:

$boardurlrn";

$out

.=

"Accept-Language:

zh-cnrn";

$out

.=

"User-Agent:

$_SERVER[HTTP_USER_AGENT]rn";

$out

.=

"Host:

$hostrn";

$out

.=

"Connection:

Closern";

$out

.=

"Cookie:

$cookiernrn";

}

$fp

=

fsockopen(($ip

?

$ip

:

$host),

$port,

$errno,

$errstr,

$timeout);

if(!$fp)

return

'';

else

{

$header

=

$content

=

'';

stream_set_blocking($fp,

$block);

stream_set_timeout($fp,

$timeout);

fwrite($fp,

$out);

$status

=

stream_get_meta_data($fp);

if(!$status['timed_out'])

{//未超时

while

(!feof($fp))

{

$header

.=

$h

=

fgets($fp);

if($h

($h

==

"rn"

||

$h

==

"n"))

break;

}

$stop

=

false;

while(!feof($fp)

!$stop)

{

$data

=

fread($fp,

($limit

==

||

$limit

>

8192

?

8192

:

$limit));

$content

.=

$data;

if($limit)

{

$limit

-=

strlen($data);

$stop

=

$limit

<=

0;

}

}

}

fclose($fp);

return

$returnHeader

?

array($header,$content)

:

$content;

}

}

?>

调用也很简单的。简单的例子:

代码如下:

echo

httpRequest('');

希望本文所述对大家的php程序设计有所帮助。

关于php构造http报文的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于包含php构造http报文的词条的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did196856
更新时间:2023-04-26   阅读:22次

上一篇: phpchmod目录 php扩展目录

下一篇:php更新svn php更新数据库语句

最新资料更新

  • 1.php本地myaql工具 phpmysqlnd
  • 2.php资源扫描教程 php识别二维码内容源码
  • 3.form居中显示php form居中显示
  • 4.php中table行宽 php网页表格
  • 5.phpmywind phpmywind去重复
  • 6.php提取css文件 php引用css文件
  • 7.php类方法 php类方法访问变量
  • 8.php绘制健康码 php源码怎么搭建网站
  • 9.php区xml文件 php处理xml数据
  • 10.php用户检索记录系统 php搜索数据库
  • 11.php的sql累加 sql实现累加
  • 12.php英国时区代码 英国时区缩写
  • 13.php数据导出csv php导出大量数据
  • 14.php判断多个数字 php判断字符串是否为数字
  • 15.中南php哪家好 中南cp
  • 16.phpword导出 phpspreadsheet导出
  • 17.php实现频率限制 php限制频繁访问
  • 18.下载并安装php 下载并安装央视网
  • 19.php视频直播源码 php直播源码免费
  • 20.php存储的知识 php会话保存数据的两种方式是

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://www.haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]