php解析http
『壹』 apache php 安裝後,Apache正常啟動,但無法解析PHP,可以解析html。網頁出現HTTP 404是怎麼回事
apache php 安裝後,Apache正常啟動,但無法解析PHP,可以解析html。網頁出現HTTP 404是設置錯誤造成的,解決方法為;
1、在apache的安裝目錄下,有一個htdocs目錄,現在,我們在該目錄下,新建一個簡單的php網頁文件。
『貳』 php怎麼響應客戶端發送http請求
http請求有get,post。
php發送http請求有三種方式[我所知道的有三種,有其他的告訴我]。
1. file_get_contents();詳情見:http://www.jb51.net/article/41833.htm
2. curl發送請求。
3. fsocket發送。
下面說使用curl發送。
首先環境需要配置好curl組件。
在windows中讓php支持curl比較簡單:
在php.ini中將extension=php_curl.dll前面的分號去掉,
有人說需要將php根目錄的libeay32.dll和ssleay32.dll需要拷貝到系統目錄下去。我實驗不拷貝也可以。
在linux中,如果使用源碼安裝,需要在make 之前,./configure --with-curl=path,
其中,path是你的 libcurl庫的位置,比如你安裝libcurl庫之後,
path可能就是/usr/local/,libcurl可以是靜態庫,也可以是動態庫。
注意libcurl庫configure的時候,可以將一些不需要的功能去掉,
比如ssl , ldap等。在php configure的時候,會去檢查libcurl中某些功能是否被開啟,進而去相應地調整生成的php。
『叄』 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怎麼獲取httprequest和httpresponse信息
HttpResponse輸出文件:
Response.Clear();
Response.ContentType = "application/octet-stream";
//通知瀏覽器下載文件而不是打開
Response.AddHeader("Content-Disposition", "attachment; filename=aaa.csv");
var sw = new StreamWriter(response.OutputStream);
//cc.Write<CustomerData>(list, sw, csvFileDesc);
sw.Flush();
sw.Close();
HttpRequest獲取文件:
var sr = new StreamReader(request.InputStream);
『伍』 php中使用parse_url()對網址進行解析的實現代碼(parse_url詳解)
PHP
解析
URL函數:
parse_url詳解
parse_url
—
解析
URL,返回其組成部分
說明
array
parse_url
(
string
$url
)
本函數解析一個
URL
並返回一個關聯數組,包含在
URL
中出現的各種組成部分。
本函數不是用來驗證給定
URL
的合法性的,只是將其分解為下面列出的部分。不完整的
URL
也被接受,parse_url()
會嘗試盡量正確地將其解析。
參數
url
要解析的
URL
返回值
對嚴重不合格的
URL,parse_url()
可能會返回
FALSE
並發出
E_WARNING。否則會返回一個關聯數組,其組成部分為(至少有一個):
scheme
–
如
http
host
port
user
pass
path
query
–
在問號
?
之後
fragment
–
在散列符號
#
之後
範例
parse_url()
例子
復制代碼
代碼如下:
<?php
$url
=
'http://username:password@hostname/path?arg=value#anchor';
print_r(parse_url($url));
?>
以上常式會輸出:
Array
(
[scheme]
=>
http
[host]
=>
hostname
[user]
=>
username
[pass]
=>
password
[path]
=>
/path
[query]
=>
arg=value
[fragment]
=>
anchor
)
常常我們會傳送一大串網址,然後要解析的話,只能不斷地去切token來解析。但是在php中,一定要學會使用前人所寫過的函式,這樣開發速度才會快別人一截。當然,要解析網址的話,就得去找相關的指令,而今天要介紹的,就是php中的parse_url這個函式。
這個函式主要是用來解析網址,而首先先看一下這個函式原型,其官方描述如下:
mixed
parse_url
(
string
$url
[,
int
$component=
-1
]
)
而php官方舉了一個例子,而我將他擴充如下,以方便講解。
復制代碼
代碼如下:
<?php
$url
=
'http://username:password@hostname/path?arg1=value1&arg2=value2#anchor';
print_r(parse_url($url));
?>
首先,先看一下這個程式的輸出結果
Array
(
[scheme]
=>
http
[host]
=>
hostname
[user]
=>
username
[pass]
=>
password
[path]
=>
/path
[query]
=>
arg1=value1&arg2=value2
[fragment]
=>
anchor
)
其中,scheme是指他走的路線,而host則是站台網址,user則是使用者名稱,pass則是密碼,path則是路徑,query則是參數,fragment則是錨點。
而在「$component」的部份,則是有以下的參數可供傳遞。
PHP_URL_SCHEME
PHP_URL_HOST
PHP_URL_USER
PHP_URL_PASS
PHP_URL_PATH
PHP_URL_QUERY
PHP_URL_FRAGMENT
而這幾個參數則分別代表了Array中的scheme、host、user、pass、path、query和fragment。
同樣,舉例來說,如果使用PHP_URL_PATH和PHP_URL_QUERY來說,以下為他的示範。
復制代碼
代碼如下:
<?php
$url
=
'http://username:password@hostname/path?arg1=value1&arg2=value2#anchor';
echo
nl2br(parse_url($url,
PHP_URL_PATH)."\n");
echo
nl2br(parse_url($url,
PHP_URL_QUERY)."\n");
?>
而輸出結果將如下:
/path
arg1=value1&arg2=value2
『陸』 PHP腳本程序主要是由哪幾部分組成
運行PHP腳本程序,必須藉助PHP預處理器、WEB伺服器和WEB瀏覽器,必要時還需藉助資料庫伺服器。
1.WEB瀏覽器
也叫網頁瀏覽器,簡稱瀏覽器。常見的瀏覽器有微軟的Internet Explorer(IE)瀏覽器、Mozilla的Firefox瀏覽器等。
2.PHP預處理器
PHP Preprocessor的功能是將PHP程序中的代碼解釋為文本信息,這些文本信息中可以包含HTML代碼。
3.WEB伺服器
WEB Server也稱為WWW(World Wide Web)伺服器,功能是解析HTTP。當WEB伺服器接收到瀏覽器的一個HTTP動態請求時,Web伺服器會調用與請求對應的程序,程序經PHP預處理器解釋執行後,WEB伺服器向瀏覽器返回HTTP響應,該響應通常是一個HTML頁面。瀏覽器收到該HTTP響應後,將執行結果顯示在瀏覽器上。
常見的WEB伺服器有微軟的Internet Information Server(IIS)伺服器、IBM的WebSphere伺服器、開源的Apache伺服器等。IIS中文全稱是互聯網信息伺服器。
WEB瀏覽器請求的是靜態頁面,只需要WEB伺服器響應該請求;如果瀏覽器請求的是動態頁面(php代碼),此時WEB伺服器會委託PHP預處理器將動態頁面解釋為HTML靜態頁面,再有WEB伺服器返回給瀏覽器顯示。
4.資料庫伺服器
Database Server是一套為應用程序提供數據管理的服務軟體,服務包含數據的添加、修改、刪除、事務管理、索引服務、高速緩存、查詢優化、安全及存儲控制等。
常見的資料庫伺服器有甲骨文的Oracle、微軟的SQL Server、IBM的DB2、SAP的Sybase以及SUN公司的MySQL等。