導航:首頁 > 編程語言 > 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函數相關的資料

熱點內容
怎麼做一個minecraft伺服器 瀏覽:769
c語言實現ls命令 瀏覽:663
小洋糕解壓視頻 瀏覽:450
域名內網訪問內網伺服器地址 瀏覽:138
我的世界伺服器如何摳掉金幣 瀏覽:223
域名與ip地址通過什麼伺服器查 瀏覽:95
企業網站需要什麼雲伺服器配置 瀏覽:909
遼事通伺服器出現錯誤是什麼原因 瀏覽:765
能否將一個表格的子表加密 瀏覽:63
手機ios微信收藏怎麼加密 瀏覽:593
安卓如何改黑色 瀏覽:330
oracle資料庫導出命令 瀏覽:696
用python做鍾表盤 瀏覽:873
腰椎壓縮性骨折吧 瀏覽:326
安卓怎麼把軟體改成火影忍者 瀏覽:704
手機如何切換軟體商店伺服器 瀏覽:325
江蘇省python二級題型 瀏覽:231
文件編譯器在哪 瀏覽:28
選擇目錄時此電腦的文件夾怎麼刪 瀏覽:25
狗狗幣加密支付服務 瀏覽:897