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
希望能帮到你。