php獲取請求信息
① thinkphp怎樣獲取ajax請求數據
一般將前台頁面搜索結果中,不喜歡的內容(鏈接),刪除掉,因為整個網站的編程框架式thinkphp,運用js中的ajax對頁面進行響應,調用後台php介面,實現前台和後台資料庫的同時更新.
首先我們需要做的就是在前台頁面中添加一個文本「刪除」,可以這么添加:
代碼如下:
<a href="javascript:void(0);" id= "<php>echo $val[id]</php>" class="delete" >刪除</a>
上面的html代碼的意思:就是給刪除添加一個href,這個href是個js函數,類似於超鏈接的作用,當然對於我這樣的新手在剛開始的時候會有疑惑,我們平時的超鏈接不是這樣的,網頁中很多的javascript:void(0),那程序怎麼知道用戶點擊刪除後,會響應其真正對應的js函數呢?別急,這就是為什麼會為刪除添加id以及class這樣的標簽,相信我把js中的代碼公布出來以後你就會明白了,代碼如下:
jQuery(".list a.delete").click(function(){
if(confirm("你確定要刪除嗎?")){
var _this=this;
var id = jQuery(_this).attr("id");
jQuery.ajax({
url : '/Search/index.php/Jason/delete?',
data : {'id':id},
dataType : 'json',
success : function(data){
var del = data.del;
if(del == 1){//刪除成功
jQuery("#"+id).parents(".list").remove();
}else{//刪除失敗
alert("刪除失敗");
}
}
});
}
});
大家看函數的頭部:jQuery(".list a.delete").click(),jQuery後面的標簽是很重要的,這就保證了jquery很准確的響應頁面中用戶點擊的「位置」,添加的事件為click(),在click里添加響應事件的代碼:var id = jQuery(_this).attr("id");獲取a對應的id,因為這個id是我們刪除資料庫時用到的鏈接id,當然這種直接明文的方式不好,在這里只是介紹整個響應過程。調用ajax,實現非同步的運行整個過程。我們設置了js接受的是json串,這里的方式應該有很多種吧,我沒有去嘗試,大家要是有興趣可以自行嘗試一下。/Search/index.php/Jason/delete?這句話就是js去請求php的介面,php介面對用的代碼如下:
注意ajax在求php介面時的路徑,也就是delete函數必須放在JasonAction.class.php中,此例子是必須這樣的:
代碼如下:
public function delete(){
if($this->isGet()){
$userId = session("uid");//用戶登錄
if(!empty($userId)){
$a = M('***');
$id = $this->_get('id');
$result=$a->where("id=$id")->delete();//刪除
if($result > 0){
$arr = array("del"=>'1');
}else{
$arr = array("del"=>'0');
}
$json_str = json_encode($arr);
echo $json_str;//返回給js
}
}
}
相信大家對上面的代碼不會陌生吧,整個過程都是thinkphp框架內部配置完畢的.
var del = data.del;這句是接受php代碼返回來的json串中del這個key的value,進而在前台進行頁面更新和響應.
復制代碼代碼如下:
if(del == 1){//刪除成功
jQuery("#"+id).parents(".list").remove();//這句話就是後台刪除成功後,直接在前台對響應的div進行刪除,這樣性能就會很快,無需進行後台數據的重新提取至前台頁面中,
}else{//刪除失敗
alert("刪除失敗");
}
整個響應的過程就是這樣,至於效果優化,是優化和細化方面的問題,後來,身邊的同事又告訴我前台移除響應鏈接的另一個動態效果:
即將:
代碼如下:
jQuery("#"+id).parents(".list").remove();
替換為:
代碼如下:
jQuery("#"+id).parents(".list").slideUp("slow", function(){
jQuery(this).remove();
});
② php中如何獲取post的請求包的原始內容
$_POST['fieldname'];
file_get_contents("php://input");
$GLOBALS['HTTP_RAW_POST_DATA'];
③ PHP 可以獲取客戶端哪些訪問信息
<?php
echo"<br>".$_SERVER['PHP_SELF'];#當前正在執行腳本的文件名,與documentroot相關
echo"<br>".$_SERVER['argv'];#傳遞給該腳本的參數。
echo"<br>".$_SERVER['argc'];#包含傳遞給程序的命令行參數的個數(如果運行在命令行模式)。
echo"<br>".$_SERVER['GATEWAY_INTERFACE'];#伺服器使用的CGI規范的版本。例如,「CGI/1.1」。
echo"<br>".$_SERVER['SERVER_NAME'];#當前運行腳本所在伺服器主機的名稱。
echo"<br>".$_SERVER['SERVER_SOFTWARE'];#伺服器標識的字串,在響應請求時的頭部中給出。
echo"<br>".$_SERVER['SERVER_PROTOCOL'];#請求頁面時通信協議的名稱和版本。例如,「HTTP/1.0」。
echo"<br>".$_SERVER['REQUEST_METHOD'];#訪問頁面時的請求方法。例如:「GET」、「HEAD」,「POST」,「PUT」。
echo"<br>".$_SERVER['QUERY_STRING'];#查詢(query)的字元串。
echo"<br>".$_SERVER['DOCUMENT_ROOT'];#當前運行腳本所在的文檔根目錄。在伺服器配置文件中定義。
echo"<br>".$_SERVER['HTTP_ACCEPT'];#當前請求的Accept:頭部的內容。
echo"<br>".$_SERVER['HTTP_ACCEPT_CHARSET'];#當前請求的Accept-Charset:頭部的內容。例如:「iso-8859-1,*,utf-8」。
echo"<br>".$_SERVER['HTTP_ACCEPT_ENCODING'];#當前請求的Accept-Encoding:頭部的內容。例如:「gzip」。
echo"<br>".$_SERVER['HTTP_ACCEPT_LANGUAGE'];#當前請求的Accept-Language:頭部的內容。例如:「en」。
echo"<br>".$_SERVER['HTTP_CONNECTION'];#當前請求的Connection:頭部的內容。例如:「Keep-Alive」。
echo"<br>".$_SERVER['HTTP_HOST'];#當前請求的Host:頭部的內容。
echo"<br>".$_SERVER['HTTP_REFERER'];#鏈接到當前頁面的前一頁面的URL地址。
echo"<br>".$_SERVER['HTTP_USER_AGENT'];#當前請求的User_Agent:頭部的內容。
echo"<br>".$_SERVER['HTTPS'];#—如果通過https訪問,則被設為一個非空的值(on),否則返回off
echo"<br>".$_SERVER['REMOTE_ADDR'];#正在瀏覽當前頁面用戶的IP地址。
echo"<br>".$_SERVER['REMOTE_HOST'];#正在瀏覽當前頁面用戶的主機名。
echo"<br>".$_SERVER['REMOTE_PORT'];#用戶連接到伺服器時所使用的埠。
echo"<br>".$_SERVER['SCRIPT_FILENAME'];#當前執行腳本的絕對路徑名。
echo"<br>".$_SERVER['SERVER_ADMIN'];#管理員信息
echo"<br>".$_SERVER['SERVER_PORT'];#伺服器所使用的埠
echo"<br>".$_SERVER['SERVER_SIGNATURE'];#包含伺服器版本和虛擬主機名的字元串。
echo"<br>".$_SERVER['PATH_TRANSLATED'];#當前腳本所在文件系統(不是文檔根目錄)的基本路徑。
echo"<br>".$_SERVER['SCRIPT_NAME'];#包含當前腳本的路徑。這在頁面需要指向自己時非常有用。
echo"<br>".$_SERVER['REQUEST_URI'];#訪問此頁面所需的URI。例如,「/index.html」。
echo"<br>".$_SERVER['PHP_AUTH_USER'];#當PHP運行在Apache模塊方式下,並且正在使用HTTP認證功能,這個變數便是用戶輸入的用戶名。
echo"<br>".$_SERVER['PHP_AUTH_PW'];#當PHP運行在Apache模塊方式下,並且正在使用HTTP認證功能,這個變數便是用戶輸入的密碼。
echo"<br>".$_SERVER['AUTH_TYPE'];#當PHP運行在Apache模塊方式下,並且正在使用HTTP認證功能,這個變數便是認證的類型。
?>
④ PHP-php 如何獲取請求的xml數據
$url="你的請求地址";
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
//需返回HTTPheader
curl_setopt($ch,CURLOPT_HEADER,1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$output=curl_exec($ch);
curl_close($ch);
$output=explode(" ",$output);
//頭信息
$header=$output[0];
//內容
$output=$output[1];//這里獲得你的XML信息,然後自己解析XML
echo'<pre>',$output,'</pre>';
⑤ 如何在php中獲取curl請求的請求頭信息及相應頭信息
oCurl=curl_init();
//設置請求頭
$header[]="Content-type:application/x-www-form-urlencoded";
$user_agent="Mozilla/5.0(WindowsNT6.1)AppleWebKit/537.36(KHTML,likeGecko)Chrome/33.0.1750.146Safari/537.36";
curl_setopt($oCurl,CURLOPT_URL,$sUrl);
curl_setopt($oCurl,CURLOPT_HTTPHEADER,$header);
//返回response_header,該選項非常重要,如果不為true,只會獲得響應的正文
curl_setopt($oCurl,CURLOPT_HEADER,true);
//是否不需要響應的正文,為了節省帶寬及時間,在只需要響應頭的情況下可以不要正文
curl_setopt($oCurl,CURLOPT_NOBODY,true);
//使用上面定義的uacurl_setopt($oCurl,CURLOPT_USERAGENT,$user_agent);curl_setopt($oCurl,CURLOPT_RETURNTRANSFER,1);
//不用POST方式請求,意思就是通過GET請求
curl_setopt($oCurl,CURLOPT_POST,false);$sContent=curl_exec($oCurl);
//獲得響應結果里的:頭大小
$headerSize=curl_getinfo($oCurl,CURLINFO_HEADER_SIZE);
//根據頭大小去獲取頭信息內容
$header=substr($sContent,0,$headerSize);
curl_close($oCurl);
⑥ php如何獲取請求介面資源的請求者的IP地址
php獲取介面資源的IP地址:
<?php
function getIPLoc_sina($queryIP){
$url = 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip='.$queryIP;
$ch = curl_init($url);
curl_setopt($ch,CURLOPT_ENCODING ,'utf8');
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ; // 獲取數據返回
$location = curl_exec($ch);
$location = json_decode($location);
curl_close($ch);
$loc = "";
if($location===FALSE) return "";
if (empty($location->desc)) {
$loc = $location->province.$location->city.$location->district.$location->isp;
}else{ $loc = $location->desc;
}
return $loc;
}
echo getIPLoc_sina("183.37.209.57");
?>
⑦ PHP怎麼獲取DELETE請求的參數
進入php源程序目錄中的ext目錄中,這里存放著各個擴展模塊的源代碼,選擇你需要的模塊,比如curl模塊:cd curl
執行phpize生成編譯文件,phpize在PHP安裝目錄的bin目錄下
/usr/local/php5/bin/phpize
運行時,可能會報錯:Cannot find autoconf. Please check your autoconf installation and
the $PHP_AUTOCONF
environment variable is set correctly and then rerun this
script.,需要安裝autoconf:
yum install autoconf(RedHat或者CentOS)、apt-get install
autoconf(Ubuntu Linux)
/usr/local/php5/bin/php -v
執行這個命令時,php會去檢查配置文件是否正確,如果有配置錯誤,
這里會報錯,可以根據錯誤信息去排查!你看過後很簡單吧以後不會可以向我一樣經常到後盾人找找相關教材看看就會了,希望能幫到你,給個採納吧謝謝
⑧ php中怎樣得到客戶端的http請求header所有信息
<?php
ob_end_flush();
print_r(apache_request_headers());
?>