导航:首页 > 编程语言 > phphttp函数

phphttp函数

发布时间:2022-07-20 02:06:27

A. 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:
$boarrlrn";
$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:
$boarrlrn";
$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
==
0
||
$limit
>
8192
?
8192
:
$limit));
$content
.=
$data;
if($limit)
{
$limit
-=
strlen($data);
$stop
=
$limit
<=
0;
}
}
}
fclose($fp);
return
$returnHeader
?
array($header,$content)
:
$content;
}
}
?>

调用也很简单的。简单的例子:
代码如下:
echo
httpRequest('http://www..com');

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

B. 在PHP学习过程中如何获取http请求中的参数值

可以使用PHP的全局静态变量$_GET获取get请求的参数
$_POST获取post请求的参数
其他一些请求传递数据可以使用file_get_contents等函数获取

C. 关于PHP http_build_query()

http_build_query会对特殊字符进行url编码!
改变不了!除非你不用这个函数!
php所有内置的函数, 都是php官方定义好的, 你改变不了!

不过, 要是这个函数不怎么适合你用, 你完全可以自定义一个函数!

D. php如何通过get方法发送http请求,并且得到返回的参数

这是一个跨域访问问题,以前这种问题是比较复杂的。不过随着XML josn等等数据结构的应用
现在还是很好解决的 而且你的要求也不高 只是一个返回值的话 都用不到数据结构了 直接页面输出就好了
我写了两个简单的文件给你 里面的域名和文件名参数 你都可以自己调整 我测试是没问题的

//test.php
<?php
$ch = curl_init();

$str ='http://127.0.0.1/form.php?id=10';
curl_setopt($ch, CURLOPT_URL, $str);
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );
$output = curl_exec($ch);
var_mp( $output );
?>

//页面输出结果 string(2) "10"

//form.php 文件内容如下
<?php
$id = $_GET['id'];
echo $id;
?>

E. 让php输出完整的http响应,包括header部分,像perl一样

如果你要把他返回的HEAD部分返回,好像只能输出吧。再说如果是HTML里面的HEAD,你如果觉得没有用 不需要 就不返回这块呗。

F. $HTTP_POST_VARS在php中这是什么函数

$HTTP_POST_VARS不是函数啊!是一个全局变量,他可以用于3.0及以下版本,$HTTP_POST_VARS不是自动全局变量。类似$_POST,但$_POST只能用于4.0及以上版本中

G. php http相关的函数有哪些

1.首先是数据库方面的函数,例如:mysql_connect,mysql_create_db,mysql_fetch_array,mysql_select_db,mysql_query,数据库的函数众多,最好写成一个类,可以参考discuz,phpcms等,如果是php5,可以使用PDO

2.php的数组很强大,很多地方要用到最好把关于数组的循环,分割,删除等记住,例如:is_array,implode,explode,array_keys,array_merge等
3.还有就是记牢一些安全性的函数,例如:addslashes,htmlspecialchars等。其他还有字符处理:subtr,strlen,trim等

4.初学者要尽量使用专业的编辑器,例如:UE,editplus等,有利于拼写和记忆函数,少用IDE工具,例如zendstudio等,这些虽然方便,但是不利于记忆函数,加入没有了IDE的情况下,就成了盲人了,虽有思路,但写不出代码来。

H. php哪些方式发送http请求

第一种实现方式:实用socket编程,通常我们实用fsockopen这个函数来创建一个socket连接,用fputs来发送一个请求
第二种实现方式:实用php的curl扩展,我们使用curl_init()来初始化一个连接,然后设置一堆的curl_setopt()的东西来设置url,post的数据等等,最后我们使用curl_exec()来实现请求。
第三种方式就是: 实用file_get_contents函数,其实我们平时抓取一个网页可能只实用它的第一个参数,其实它的第三个参数就有数据了

I. 怎么通过PHP来支持FTP和HTTP上传

给你一些 php 操作 ftp 的函数:


FTP 函数

  1. ftp_alloc— 为要上传的文件分配空间

  2. ftp_cp— 切换到当前目录的父目录

  3. ftp_chdir— 在 FTP 服务器上改变当前目录

  4. ftp_chmod— 设置 FTP 服务器上的文件权限

  5. ftp_close— 关闭一个 FTP 连接

  6. ftp_connect— 建立一个新的 FTP 连接

  7. ftp_delete— 删除 FTP 服务器上的一个文件

  8. ftp_exec— 请求运行一条 FTP 命令

  9. ftp_fget— 从 FTP 服务器上下载一个文件并保存到本地一个已经打开的文件中

  10. ftp_fput— 上传一个已经打开的文件到 FTP 服务器

  11. ftp_get_option— 返回当前 FTP 连接的各种不同的选项设置

  12. ftp_get— 从 FTP 服务器上下载一个文件

  13. ftp_login— 登录 FTP 服务器

  14. ftp_mdtm— 返回指定文件的最后修改时间

  15. ftp_mkdir— 建立新目录

  16. ftp_nb_continue— 连续获取/发送文件(non-blocking)

  17. ftp_nb_fget— 从 FTP 服务器获取文件并写入到一个打开的文件(非阻塞)

  18. ftp_nb_fput— 将文件存储到 FTP 服务器 (非阻塞)

  19. ftp_nb_get— 从 FTP 服务器上获取文件并写入本地文件(non-blocking)

  20. ftp_nb_put— 存储一个文件至 FTP 服务器(non-blocking)

  21. ftp_nlist— 返回给定目录的文件列表

  22. ftp_pasv— 返回当前 FTP 被动模式是否打开

  23. ftp_put— 上传文件到 FTP 服务器

  24. ftp_pwd— 返回当前目录名

  25. ftp_quit— ftp_close 的 别名

  26. ftp_raw— 向 FTP 服务器发送命令

  27. ftp_rawlist— 返回指定目录下文件的详细列表

  28. ftp_rename— 更改 FTP 服务器上的文件或目录名

  29. ftp_rmdir— 删除 FTP 服务器上的一个目录

  30. ftp_set_option— 设置各种 FTP 运行时选项

  31. ftp_site— 向服务器发送 SITE 命令

  32. ftp_size— 返回指定文件的大小

  33. ftp_ssl_connect— 打开 SSL-FTP 连接

  34. ftp_systype— 返回远程 FTP 服务器的操作系统类型


例子:

<?php

$ftp_server="";
$ftp_user_name="";
$ftp_user_pass="";
$file="";//tobeuploaded
$remote_file="";

//简历ftp链接
$conn_id=ftp_connect($ftp_server);

//使用用户名和密码登录
$login_result=ftp_login($conn_id,$ftp_user_name,$ftp_user_pass);

//上传文件
if(ftp_put($conn_id,$remote_file,$file,FTP_ASCII)){
echo"成功上传文件:$file ";
exit;
}else{
echo"上传文件错误:$file ";
exit;
}

//关闭ftp链接
ftp_close($conn_id);

J. PHP中如何发送HTTP请求

看起来你的代码正确,不知道你有什么问题。
这个方法不错,但是最好用一个封装好的类。

比如http_client之类的,网上这样的类挺多了,你可以搜索一下。
当然直接用socket也可以。

阅读全文

与phphttp函数相关的资料

热点内容
pythonoa项目 浏览:307
android杜比音效 浏览:341
杀手47为什么连接不了服务器 浏览:108
静态路径命令 浏览:533
一直编译不过怎么办 浏览:829
汽车串联并联算法 浏览:458
助眠解压的声音音频小哥哥 浏览:277
pythoncmd换行 浏览:376
linux取消行号 浏览:355
安卓原生系统官网是什么 浏览:444
底部主图源码 浏览:878
服务器崩了有什么提示 浏览:780
远程海康服务器用什么浏览器 浏览:232
解压报纸图片 浏览:956
python微信公众号开发平台 浏览:895
知识付费网站java源码 浏览:255
方舟怎么做命令管理 浏览:849
linux流量异常 浏览:675
单片机如何给电脑加密码 浏览:519
如何删掉多余的服务器 浏览:220