phpurl處理
A. php如何通過url調用php文件中的方法
題主所描述的這種形式,是MVC設計模式的典型應用。
通過使用PSR4來實現自動載入,可以通過處理路由來實現
//處理路由的方法
staticpublicfunctionroute()
{
//獲取的模塊
$_GET['m']=isset($_GET['m'])?$_GET['m']:'Index';
//獲取行為動作action又叫方法
$_GET['a']=isset($_GET['a'])?$_GET['a']:'index';
$controller='Controller\'.$_GET['m'].'Controller';
//echo$controller;
$c=new$controller();
//$c->$_GET['a']();
call_user_func(array($c,$_GET['a']));
}
最終可實現以下形式:
如果參數名和值全部是已知的,那麼做一個映射表就可以了。
如果參數的值涉及用戶提交的內容,對於過長的內容,最好使用POST,並開啟Gzip壓縮。
關於URL的長度:
1,普通用戶很少通過修改url來實現跳轉
2,太短的參數名稱就很難理解含義,比如content如果縮短成c,你知道這代表什麼意思么?
3,如果說為了便於保存和分享,那麼可以考慮short url的處理方式
4,url的長度對性能的影響微乎其微,除非是超長文本,那就是程序設計的問題了
5,如果說刻意追求極短的url,還要進行壓縮和解壓縮步驟,真的有點畫蛇添足了
C. 求助php 獲取當前URL 還需要對參數進行處理 急
兩種方式
1、通過數組$_REQUEST,去掉page參數,再組成新地址
2、如果split('&')將請求的地址中的參數分解為數組,遍歷數組indexof('page=')為索引0時去掉該元素
var arr = split('&', $URL);
foreach($arr as $key=>$value)
{
if(0===strpos ($value, 'page='))
{
unset($arr[$key]);
break;
}
}
$newurl = join('&', $arr)
D. PHP處理由URL傳入的字元串參數(post.php)
post是郵件的意思,跟這個有什麼關系?
回答:只是一個文件名。什麼都不是,這個頁面只是用來獲取$_GET['entry']後讀取對應的日誌
url表現在哪裡?
回答:這個不明白是什麼意思
content是內容的意思,在這里是什麼?把它放在$path前邊是什麼意思?
回答:這個跟英文單詞的意思沒什麼關系,只是形象一點而已,這里只是一個文件夾的名稱
entry進入、入口、登陸,在這里的作用是?
回答:只是傳參的參數名稱
200712-02-215307這段,
0,6是讀取6個字元,是200712-嗎?
回答:不對,從字元串的下標0開始,截取長度為6,返回200712
7,9,是從02的0讀取到-嗎?
回答:原理同上,
建議好好看看手冊
E. php處理url的幾個函數
pathinfo
[php]viewplain
<?php
$test=pathinfo("http://localhost/index.php");
print_r($test);
?>
結果如下
Array
(
[dirname]=>http://localhost//url的路徑
[basename]=>index.php//完整文件名
[extension]=>php//文件名後綴
[filename]=>index//文件名
)
parse_url
[php]viewplain
<?php
$test=parse_url("http://localhost/index.php?name=tank&sex=1#top");
print_r($test);
?>
結果如下
Array
(
[scheme]=>http//使用什麼協議
[host]=>localhost//主機名
[path]=>/index.php//路徑
[query]=>name=tank&sex=1//所傳的參數
[fragment]=>top//後面根的錨點
)
basename
[php]viewplain
<?php
$test=basename("http://localhost/index.php?name=tank&sex=1#top");
echo$test;
?>
結果如下
index.php?name=tank&sex=1#top
F. php 頁面轉跳 URL處理問題
可以這樣簡單的實現
在你這個頁面上面加上
<?php
if(isset($_POST['subject'])){
$a=$_POST['subject'];
switch($a){
case 'php':
Header("Location: php要跳到的地址");
break;
case 'jsp':
Header("Location: jsp要跳到的地址"); break;
case 'asp':
Header("Location: asp要跳到的地址"); break;
default:
break;
}
}
G. php獲取url參數
1、在當前網頁echo出變數$_SERVER['HTTP_HOST']即可獲取域名或主機地址。
H. PHP處理由URL傳入的字元串參數(post.php)
目錄不存在。 時間戳為0格式化出來就是 1970-01-01 00:00:00
要不你echo date("Y-m-d H:i:s",0)看下。
I. php url 參數會重復,怎麼處理重復url參數,謝謝
重復是你自己加的<a href="<?=$url?>&id=6">菜單1</a>
這樣寫吧你
<?php$get=array_unique($_GET);
//$get['newparam']='new_value';
isset($get['id'])&&unset($get['id']);
$query=http_build_query($get);
$url="?".$query;
echo$url;
?>
<div>
<ahref="<?=$url?>&id=6">菜單1</a>
<ahref="<?=$url?>&id=7">菜單2</a>
<ahref="<?=$url?>&id=8">菜單3</a>
</div>
或者
<?php$get=array_unique($_GET);
//$get['newparam']='new_value';
?>
<div>
<ahref="?<?phpechohttp_build_query(array_merge($get,array('id'=>6)));?>">菜單1</a>
<ahref="?<?phpechohttp_build_query(array_merge($get,array('id'=>7)));?>">菜單2</a>
<ahref="?<?phpechohttp_build_query(array_merge($get,array('id'=>8)));?>">菜單3</a>
</div>
J. php處理url的幾個函數
pathinfo
[php]viewplain
<?php
$test=pathinfo("http://localhost/index.php");
print_r($test);
?>
結果如下
Array
(
[dirname]=>http://localhost//url的路徑
[basename]=>index.php//完整文件名
[extension]=>php//文件名後綴
[filename]=>index//文件名
)
parse_url
[php]viewplain
<?php
$test=parse_url("http://localhost/index.php?name=tank&sex=1#top");
print_r($test);
?>
結果如下
Array
(
[scheme]=>http//使用什麼協議
[host]=>localhost//主機名
[path]=>/index.php//路徑
[query]=>name=tank&sex=1//所傳的參數
[fragment]=>top//後面根的錨點
)
basename
[php]viewplain
<?php
$test=basename("http://localhost/index.php?name=tank&sex=1#top");
echo$test;
?>
結果如下
index.php?name=tank&sex=1#top
希望能幫到你。