phpurl地址
⑴ 如何通過php獲取提交頁面的URL
在PHP的開發中我們經常會通過網址URL向另一個網頁傳遞參數的問題。在這個過程中我們首先需要獲取到當前頁面的URL,然後將URL中各個參數的值保存到變數中。整個過程較為簡單,主要涉及到$_SERVER的用法。
1、$_server['http_host'],作用:獲取網址域名,如(www.5ibobo.com,這是波波的一個博客,暫且做例子吧)。
2、$_SERVER["PHP_SELF"],作用:獲取網頁地址,如(/code/445.html)。
3、$_SERVER["QUERY_STRING"],作用:獲取網址URL參數,待會我們會在實例中用到。
4、$_SERVER["HTTP_REFERER"],作用:獲取用戶的代理。
⑵ ThinkPHP 網址格式URL地址怎麼設置~呢
thinkPHP的URL在config中配置
一、URL規則
1、默認是區分大小寫的
2、如果我們不想區分大小寫可以改配置文件
'URL_CASE_INSENSITIVE'=>true,//url不區分大小寫
3、如果模塊名為 UserGroupAction,那麼url找模塊就必要要寫成
http://localhost/thinkphp4/index.php/user_group/index
4、如果'URL_CASE_INSENSITIVE'=>false,那麼url也可以寫為
http://localhost/thinkphp4/index.php/UserGroup/index
二、URL偽靜態
'URL_HTML_SUFFIX'=>'html|shtml|xml',//限制偽靜態的後綴
三、URL路由
1、啟動路由
要在配置文件中開啟路由支持
'URL_ROUTER_ON'=>ture//開啟路由
2、使用路由
1.規則表達式配置路由
'URL_ROUTE_RULES'=>array()//路由規則
'my'=>'Index/index',//靜態地址路由
'my'=>'/Index/index',//靜態地址路由,加/直接跳到網站根目錄下。
':id/:num'=>'Index/index',//動態地址路由,可以$_GET接收地址欄參數
'year/:year/:month/:date'=>'Index/index',//動態和靜態混合地址路由
'year/:year\d/:month\d/:date\d'=>'Index/index',//動態和靜態混合地址路由加上 \d代表類型只能是數字
'my/:id$'=>'Index/index',// 加上$說明地址中只能是 my/1000 後面不能有其他內容了
2.正則表達式配置路由,必須以/開始 /結束
'/^year\/(\d{4})\/(\d{2})\/(\d{2})/'=>'Index/index?year=:1&month=:2&date=:3'//這里\d表示必須是數字
⑶ php打開URL的幾種方法
PHP中打開URL地址的幾種方法總結,這里的函數主要用於小偷採集等函數。
1:用file_get_contents
以get方式獲取內容
復制代碼代碼如下:
<?php
$url='http://www..com/';
$html=file_get_contents($url);
//print_r($http_response_header);
ec($html);
printhr();
printarr($http_response_header);
printhr();
?>
示例代碼2:用fopen打開url,
以get方式獲取內容
復制代碼代碼如下:
<?
$fp=fopen($url,'r');
printarr(stream_get_meta_data($fp));
printhr();
while(!feof($fp)){
$result.=fgets($fp,1024);
}
echo"urlbody:$result";
printhr();
fclose($fp);
?>
示例代碼3:用file_get_contents函數,以post方式獲取url
復制代碼代碼如下:
<?php
$data=array('foo'=>
'bar');
$data=http_build_query($data);
$opts=array(
'http'
=>array(
'method'=>'POST',
'header'=>"Content-type:
application/x-www-form-urlencoded".
"Content-Length:".strlen($data).
"",
'content'=>$data
),
);
$context=
stream_context_create($opts);
$html=
file_get_contents('http://localhost/e/admin/test.html',false,$context);
echo$html;
?>
示例代碼4:用fsockopen函數打開url,以get方式獲取完整的數據,包括header和body
復制代碼代碼如下:
<?
functionget_url
($url,$cookie=false){
$url=parse_url($url);
$query=
$url[path]."?".$url[query];
ec("Query:".$query);
$fp=fsockopen(
$url[host],$url[port]?$url[port]:80,$errno,$errstr,30);
if(!$fp){
returnfalse;
}else{
$request="GET$queryHTTP/1.1";
$request.="Host:$url[host]";
$request.="Connection:Close";
if($cookie)$request.="Cookie:$cookie ";
$request.="";
fwrite($fp,$request);
while(!@feof($fp)){
$result.=@fgets($fp,
1024);
}
fclose($fp);
return$result;
}
}
//獲取url的html部分,去掉header
functionGetUrlHTML($url,$cookie=false){
$rowdata=get_url($url,$cookie);
if($rowdata)
{
$body=
stristr($rowdata,"");
$body=substr($body,4,strlen($body));
return$body;
}
returnfalse;
}
?>
⑷ php判斷url地址正則表達怎麼寫
這個其實很簡單的。就不說教了,直接給代碼吧:
$url=$_SERVER['REQUEST_URI'];
if (preg_match('/^\/\w+\/?$/', $url)) {
// 說明這里匹配的是目錄
} else if (preg_match('/^\/\w+\/\w+\.html$/', $url)) {
// 說明這里是匹配的文件
}
⑸ ThinkPHP 網址格式URL地址怎麼設置
看手冊默認就是一個index.php的路由模式啊,圖片可能看不清
一、普通模式
關閉路由,完全使用默認的PATH_INFO方式URL:
'url_route_on' => false,
路由關閉後,不會解析任何路由規則,採用默認的PATH_INFO模式訪問URL:
http://serverName/index.php/mole/controller/action/param/value/...
⑹ php偽靜態如何獲取地址欄url
程序偽靜態後,搜索引擎又收錄了之前的大量動態地址,如何處理呢?
你可能以為設置301就可以了,但似乎301更搜索引擎更新過來也是需要相當一段時間,而搜索到以前的動態地址,訪問還是有點不好,畢竟還是希望訪問靜態地址,這里就需要在頁面里做一下判斷了。
首先,用了php內置函數,因程序偽靜態了,發現取得的都是真實的url地址,和顯示的url根本是兩樣。
網上找了很久,都沒有找到辦法。問題實再是很棘手。
無意中看到一個asp的例子,其中包含:http_x_rewrite_url,於是用php試了下,沒想到卻可以獲取到地址欄的地址,至此問題解決。
例子,php偽靜態如何獲取地址欄url。
代碼示例:
<?php
if(strstr($_server["http_x_rewrite_url"],".php"){//判斷是否包含.php的地址。
header("http/1.1301movedpermanently");
header("location:http://www..com/$id.html");//跳轉到新的靜態地址。
exit;
}
//只適用於windows的伺服器,liunx則需要用$_server['request_uri']來獲取
if(strstr($_server['request_uri'],".php"){//判斷是否包含.php的地址。
header("http/1.1301movedpermanently");
header("location:http://www..com/$id.html");//跳轉到新的靜態地址。
exit;
//只要輸入以前的動態地址都會以301方式轉到新的靜態地址。
?>
⑺ 如何利用php獲取url反向代理後面的真實地址
下面的代碼用於獲得真實的客戶端ip,俗話說,道高一尺魔高一丈,更高級的偽裝能夠騙過這種檢測也有可能,不過至少讓偽裝的門檻提高不少。
function getip() {
$unknown = 'unknown';
if ( isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR'] && strcasecmp($_SERVER['HTTP_X_FORWARDED_FOR'], $unknown) ) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif ( isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], $unknown) ) {
$ip = $_SERVER['REMOTE_ADDR'];
}
/*
處理多層代理的情況
或者使用正則方式:$ip = preg_match("/[\d\.]{7,15}/", $ip, $matches) ? $matches[0] : $unknown;
*/
if (false !== strpos($ip, ','))
$ip = reset(explode(',', $ip));
return $ip;
}
需要做下簡單解釋:
一、沒有使用代理伺服器的PHP獲取客戶端IP情況:
REMOTE_ADDR = 客戶端IP
HTTP_X_FORWARDED_FOR = 沒數值或不顯示
二、使用透明代理伺服器的情況:Transparent Proxies
REMOTE_ADDR = 最後一個代理伺服器 IP
HTTP_X_FORWARDED_FOR = 客戶端真實 IP (經過多個代理伺服器時,這個值類似:221.5.252.160, 203.98.182.163, 203.129.72.215)
這類代理伺服器還是將客戶端真實的IP發送給了訪問對象,無法達到隱藏真實身份的目的.
三、使用普通匿名代理伺服器的PHP獲取客戶端IP情況:Anonymous Proxies
REMOTE_ADDR = 最後一個代理伺服器 IP
HTTP_X_FORWARDED_FOR = 代理伺服器 IP (經過多個代理伺服器時,這個值類似:203.98.182.163, 203.98.182.163, 203.129.72.215)
這種情況下隱藏了客戶端的真實IP,但是向訪問對象透露了客戶端是使用代理伺服器訪問它們的.
四、使用欺騙性代理伺服器的情況:Distorting Proxies
REMOTE_ADDR = 代理伺服器 IP
HTTP_X_FORWARDED_FOR = 隨機的 IP(經過多個代理伺服器時,這個值類似:220.4.251.159, 203.98.182.163, 203.129.72.215)
這種情況下同樣透露了客戶端是使用了代理伺服器,但編造了一個虛假的隨機IP(220.4.251.159)代替客戶端的真實IP來欺騙它.
五、使用高匿名代理伺服器的PHP獲取客戶端IP情況:High Anonymity Proxies (Elite proxies)
REMOTE_ADDR = 代理伺服器 IP
HTTP_X_FORWARDED_FOR = 沒數值或不顯示
無論是REMOTE_ADDR還是HTTP_FORWARDED_FOR,這些頭消息未必能夠取得到,因為不同的瀏覽器不同的網路設備可能發送不同的IP頭消息.因此PHP使用$_SERVER["REMOTE_ADDR"] 、$_SERVER["HTTP_X_FORWARDED_FOR"] 獲取的值可能是空值也可能是「unknown」值.
⑻ php如何獲取當前頁面url路徑
function curPageURL() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on")
{
$pageURL .= "s";
}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80")
{
$pageURL .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] .
$_SERVER["REQUEST_URI"];
}
else
{
$pageURL .= $_SERVER["SERVER_NAME"] .
$_SERVER["REQUEST_URI"];
}
return $pageURL;}?>
(8)phpurl地址擴展閱讀:
獲取域名或主機地址 :echo $_SERVER['HTTP_HOST'].""; #localhost
獲取網頁地址:echo $_SERVER['PHP_SELF'].""; #/blog/testurl.php
3.獲取網址參數:echo $_SERVER["QUERY_STRING"].""; #id=5
4.獲取用戶代理:echo $_SERVER['HTTP_REFERER']."";