方法有很多,其中有file_get_contents把數據讀到一個字符串中,還有一個是curl方式,兩種方式有所不同,查一下就知道區別了
成都創新互聯自2013年創立以來,先為陽江等服務建站,陽江等地企業,進行企業商務咨詢服務。為陽江企業網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。
1、用file_get_contents 以get方式獲取內容:
?php
$url = '' ;
$html = file_get_contents ( $url );
echo $html ;
?
2、用fopen打開url,用get方式獲取
$fp = fopen ( $url , 'r' );
stream_get_meta_data( $fp );
while (! feof ( $fp )) {
$result .= fgets ( $fp , 1024);
}
echo "url body: $result" ;
fclose( $fp );
3、用file_get_contents 以post方式獲取內容:
$data = array ( 'foo' = 'bar' );
$data = http_build_query($data);
$opts = array (
'http' = array (
'method' = 'POST' ,
'header' = "Content-type: application/x-www-form-urlencodedrn" . 'Content-Length: ' . strlen($data) . 'rn' , 'content' = $data ) ); $context = stream_context_create($opts); $html = file_get_contents( '' , false , $context); echo $html;
4、用fsockopen函數打開url,以get方式獲取完整的數據,包括header和body,fsockopen需要 PHP.ini 中 allow_url_fopen 選項開啟
function get_url ( $url , $cookie =false)
{
$url = parse_url ( $url );
$query = $url [path]. '?' . $url [query];
echo 'Query:' . $query ;
$fp = fsockopen ( $url [host], $url [port]? $url [port]:80 , $errno , $errstr , 30);
if (! $fp ) {
return false;
} else {
$request = 'GET $query HTTP/1.1rn' ;
$request .= 'Host: $url[host]rn' ;
$request .= 'Connection: Closern' ;
if ( $cookie ) $request .= 'Cookie: $cookien' ;
$request .= 'rn' ;
fwrite( $fp , $request );
while (!@ feof ( $fp )) {
$result .= @ fgets ( $fp , 1024);
}
fclose( $fp );
return $result ;
}
}
//獲取url的html部分,去掉header
function GetUrlHTML( $url , $cookie =false)
{
$rowdata = get_url( $url , $cookie );
if ( $rowdata )
{
$body = stristr ( $rowdata , 'rnrn' );
$body = substr ( $body ,4, strlen ( $body ));
return $body ;
}
return false;
}
5、 用fsockopen函數打開url,以POST方式獲取完整的數據,包括header和body
function HTTP_Post( $URL , $data , $cookie , $referrer = '' )
{
// parsing the given URL
$URL_Info = parse_url ( $URL );
// Building referrer
if ( $referrer == '' ) // if not given use this script as referrer
$referrer = '111' ;
// making string from $data
foreach ( $data as $key = $value )
$values []= '$key=' .urlencode( $value );
$data_string =implode( '' , $values );
// Find out which port is needed – if not given use standard (=80)
if (!isset( $URL_Info [ 'port' ]))
$URL_Info [ 'port' ]=80;
// building POST-request:
$request .= "POST " . $URL_Info [ 'path' ]. " HTTP/1.1n" ; $request .= "Host: " . $URL_Info [ 'host' ]. "n" ; $request .= "Referer: $referern" ; $request .= "Content-type: application/x-www-form-urlencodedn" ; $request .= 'Content-length: ' . strlen ( $data_string ). "n" ; $request .= 'Connection: closen' ; $request .= 'Cookie: $cookien' ; $request .= 'n' ; $request .= $data_string . 'n' ; $fp = fsockopen ( $URL_Info [ 'host' ], $URL_Info [ 'port' ]); fputs ( $fp , $request ); while (! feof ( $fp )) { $result .= fgets ( $fp , 1024); } fclose( $fp ); return $result ;
}
6、 使用curl庫,使用curl庫之前,可能需要查看一下php.ini是否已經打開了curl擴展
$ch = curl_init();
$timeout = 5;
curl_setopt ( $ch , CURLOPT_URL, ‘http: //');
curl_setopt ( $ch , CURLOPT_RETURNTRANSFER, 1);
curl_setopt ( $ch , CURLOPT_CONNECTTIMEOUT, $timeout );
$file_contents = curl_exec( $ch );
curl_close( $ch );
echo $file_contents ;
以上就是php中,比較常用的6中遠程請求方法,希望對php新人的學習、工作有一定的幫助。當然遠程請求的方法肯定不止題主上面為大家介紹的這6中,如果你還有更好的方法,歡迎補充分享。軟件開發的學習,就是一個分享式的學習,讓我們一起在分享學習中,共進步。
最簡單的話就是使用session保存,其次可以把數據存儲在數據庫里,或者文件里,然后在register.php里查詢。
原生session使用方法
session_start();
//賦值
$_SESSION["Session名稱"]=變量或字符串信息;
//使用
$_SESSION["Session名稱"];
微信小程序的js后臺只能執行一些簡單的邏輯,遇到比較復雜的處理表單數據的功能或者網絡功能就需要連接服務器來遠程處理,實現方式就是調用小程序的 wx.request() 這一接口。
request請求 就是基本的HTTP請求,可以攜帶一些表單數據,交給服務器處理。
在小程序中的寫法如下:
采用php作為服務器端語言,通過WAMP等框架可以很容易地搭建環境,服務器主要完成對請求數據的處理以及結果數據的返回。
請求數據的獲取非常容易,直接訪問相應的超全局數組,對于GET方法而言,通過下面的方式即可:
為了方便小程序端數據的處理,結果數據仍通過json格式返回,具體在php中的簡單做法就是
這樣返回的json數據就為
其中value1,value2等變量可以設置為多維數組,這樣通過json_encode() 函數之后就可以得到相應的嵌套的json數據,從而方便處理。
通過php可以很容易地處理微信小程序的request請求,筆者是由于前一段時間需要進行微信小程序的開發,就研究了一下小程序的邏輯,然后嘗試用php進行服務端處理,對于簡單的請求處理起來覺得還不錯,這篇文章可以作為初次接觸微信小程序的一個參考。
網頁名稱:php數據的請求,php如何發起網絡請求
轉載來源:http://m.kartarina.com/article6/heiiig.html
成都網站建設公司_創新互聯,為您提供網站收錄、網站排名、定制網站、品牌網站設計、建站公司、外貿建站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯