導航:首頁 > 編程語言 > php列印請求頭

php列印請求頭

發布時間:2025-01-27 20:51:11

php 如何獲取 客戶端http header

<?php
$dir=$HTTP_GET_VARS["dir"];//.......取得上個頁面傳遞來的路徑
$file=$HTTP_GET_VARS["file"];//.......取得傳遞來的文件名
$url=parse_url($HTTP_REFERER);/*......取得前一頁面的URL地址,並將其放入一個數組中*/
if($url[host]!=$HTTP_HOST){echo"要下載本軟體請到<ahref=http://www.df365.org>東方小屋</a>";exit;}/*檢查來源網站是不是自己的網站,如果不是,返回「要下載本……」*/
if(empty($dir))$dir="/";//......如果路徑名為空,則為指定根目錄
if(empty($file)){echo"未指定要下載的文件!";exit;}/*如果文件名為空,返回「未指定……」*/
$rootdir="文件存放的根目錄";//......你的下載路徑根目錄
$realurl=$rootdir.$dir;//.......取得你的下載目錄
chdir($realurl);//......將當前目錄轉到下載目錄中
if(!file_exists($file)){echo"對不起,此鏈接已經失效,請在下載頁面上向我們報告,謝謝!";exit;}//......測試文件是否存在
$filename=$file;
//發送文件頭信息
header("Cache-control:private");//fixforIE
header("Content-Type:application/octet-stream");
header("Content-Length:".filesize($filename));
header("Content-Disposition:attachment;filename=$filename");
$fp=fopen($filename,'r');//以讀取方式打開指定文件
fpassthru($fp);//**CORRECT**以二進制方式讀取文件
fclose($fp);//關閉文件
?>

⑵ PHP中怎樣發送post請求並獲取網頁

$post='POST數據';
//初始化
$curl=curl_init('URL');
$header=array();
$header[]='User-Agent:Mozilla/5.0(WindowsNT6.1)AppleWebKit/537.36(KHTML,likeGecko)Chrome/42.0.2311.90Safari/537.36';
curl_setopt($curl,CURLOPT_HTTPHEADER,$header);
//不輸出header頭信息
curl_setopt($curl,CURLOPT_HEADER,0);
//保存到字元串而不是輸出
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
//post數據
curl_setopt($curl,CURLOPT_POST,1);
//請求數據
curl_setopt($curl,CURLOPT_POSTFIELDS,$post);
//是否抓取跳轉後的頁面
curl_setopt($curl,CURLOPT_FOLLOWLOCATION,1);
$response=curl_exec($curl);
curl_close($curl);
echo$response;

⑶ php使用nginx如何獲取請求頭

Nginx的http模塊在處理HTTP請求時對環境變數的封裝與Apache有所不同。除了支持一些與HTTP協議相關的通用的變數之外,還支持一系列Nginx自有的變數,如Nginx配置目錄下fastcgi_params.default文件里的$server_protocol、$nginx_version等。正如這個文件中的示例的用途,這些變數可以在配置fastcgi時傳遞給cgi程序,使其可以作為cgi程序的環境變數來使用。然而,即便是Nginx有了這些自有的變數也無法完全滿足所有的需求。

了解Jquery的朋友會發現,Jquery在實現Ajax時會通過setRequestHeader(『X-Requested-With』, 『xmlhttprequest』)方法自動添加一個值為「xmlhttprequest」自定義的請求頭」X-Requested-With」來標識這是一個Ajax請求,以期處理這個請求的後端能夠通過判斷這個標識來識別請求類型。那麼這個時候PHP是如何來獲取這個自定義參數的值的呢?

熟悉Apache和PHP的人一定會第一時間想到$_SERVER["HTTP_X_REQUESTED_WITH"],不錯,這對黃金搭配早就把這個問題給完美解決了,但Nginx卻不然,這是由Nginx對其自身工作的定位決定的——Nginx只負責HTTP。在Nginx眼裡,PHP只是它的一個後端,形象點來說,它只管分發請求,而不管發給誰。這就意味著,我們無法期待Nginx像Apache一樣給我們自動完成一些自定義參數到PHP的傳遞,只有自力更生。簡單點說就是,想要直接像$_SERVER["HTTP_X_REQUESTED_WITH"]這樣來調用自定義請求頭參數的值的話,你就必須手工將其添加到fastcgi_params的配置中,明確告知cgi程序接收,否則Nginx會將其遺棄。

配置環境變數的方法可參照fastcgi_params.default這個文件,在前面的博客「Nginx下虛擬主機環境變數的配置方法」中也提到過。針對上述例子,只需在fastcgi_params文件中增加一行即可:

?12 # for Ajax fastcgi_param HTTP_X_REQUESTED_WITH $http_x_requested_with;
這樣,重載Nginx配置後就可以之間在PHP中調用$_SERVER["HTTP_X_REQUESTED_WITH"]來判斷請求類型了。其中需要注意以下兩點:

一、自定義請求頭部的名稱不應該包括空白、冒號、換行和下劃線。

Nginx在處理客戶端請求header頭時,會將名稱中的中橫線」-」替換為下劃線」_」,並將所有字母小寫再加上」$http_」來作為該名稱對應的變數名。例如上述Jquery的例子中setRequestHeader(『X-Requested-With』, 『xmlhttprequest』),在HTTP請求頭中為一行字元串:」X-Requested-With: xmlhttprequest」,經Nginx處理後將自動生成一個名為$http_x_requested_with的變數,其值為」xmlhttprequest」。尤其注意中橫線」-」替換為下劃線」_」這個規則,這意味著請求參數名稱中如果含有下劃線,Nginx將無法正確識別。

二、$_SERVER["HTTP_X_REQUESTED_WITH"]中的索引,也即「fastcgi_param HTTP_X_REQUESTED_WITH $http_x_requested_with;」中加紅部分,是可以自由命名的,當前這種命名格式是為了保持和Apache保持一致。
..

⑷ 如何在php中獲取curl請求的請求頭信息及相應頭信息

<?php
$url='http://demo.zjmainstay.cn';
$ch=curl_init($url);
curl_setopt($ch,CURLOPT_HEADER,true);//返回頭信息
curl_setopt($ch,CURLOPT_NOBODY,true);//不返回內容
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//返回數據不直接輸出
$content=curl_exec($ch);//執行並存儲結果
curl_close($ch);
echo$content;

更多關於phpcURL的內容,請參考我的博客《PHPcURL應用》
http://www.zjmainstay.cn/php-curl

⑸ php如何獲取網址中的參數

比如有一個網址為

http://域名/goods.php?u=59&id=24#pinglun

我想得到這個id值

可以用正則,也可以用php函數解析到數組中

用正則可以這樣

preg_match('/id=(d+)/',$_SERVER["REQUEST_URI"],$m);//$_SERVER 這個表示當前網址url

print_r($m[1]);exit;

或者用parse_url()及parse_str()函數

$cur_q=parse_url($_SERVER["REQUEST_URI"],PHP_URL_QUERY);

parse_str($cur_q,$myArray);

print_r($myArray["id"]);exit;

拓展資料

PHP(外文名:PHP: Hypertext Preprocessor,中文名:「超文本預處理器」)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法。它可以比CGI或者Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML(標准通用標記語言下的一個應用)文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。

PHP的特性包括:

1. PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 自創新的語法。

2. PHP可以比CGI或者Perl更快速的執行動態網頁——動態頁面方面,與其他的編程語言相比,

PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成htmL標記的CGI要高許多;

PHP具有非常強大的功能,所有的CGI的功能PHP都能實現。

3. PHP支持幾乎所有流行的資料庫以及操作系統。

4. 最重要的是PHP可以用C、C++進行程序的擴展!

參考資料:網路 PHP

閱讀全文

與php列印請求頭相關的資料

熱點內容
qt編程教學視頻 瀏覽:17
plc計算機控制演算法 瀏覽:752
linuxapk編譯 瀏覽:195
軟體加密到手機 瀏覽:758
長城m4壓縮機單價 瀏覽:544
反向解析命令 瀏覽:335
pythonnetworkx使用 瀏覽:24
怎麼打開php網頁 瀏覽:853
程序員的心聲大全 瀏覽:144
演算法的標識方法有哪些 瀏覽:28
命令方塊全部指令 瀏覽:262
開汽車美容的用什麼app 瀏覽:601
聯聯美食團購app是哪個 瀏覽:213
怎麼修改手機桌面文件夾背景 瀏覽:36
當一個阿里雲伺服器無法加入置頂 瀏覽:552
python教學工具 瀏覽:29
mir編譯技術 瀏覽:404
android推送技術 瀏覽:710
魔獸世界懷舊服如何查看伺服器 瀏覽:63
cad基點命令 瀏覽:341