㈠ php获取url参数程序代码总结
parse_url函数
我们先来了解一下parse_url函数,官方解决
说明
mixed
parse_url
(
string
$url
[,
int
$component
=
-1
]
)
本函数解析一个
URL
并返回一个关联数组,包含在
URL
中出现的各种组成部分。
本函数不是用来验证给定
URL
的合法性的,只是将其分解为下面列出的部分。不完整的
URL
也被接受,
parse_url()
会尝试尽量正确地将其解析。
要解析的
URL。无效字符将使用
_
来替换。
实例
代码如下
$url
=
"http://www.45it.net/welcome/";
$parts
=
parse_url($url);
print_r($parts);
array
(
[scheme]
=>
http
[host]
=>
www.45it.net
[path]
=>
/welcome/
)
也可以自己去写一个算法!如下
代码如下
function
getParams()
{
$url
=
'/index.php?_p=index&_a=show&x=12&y=23';
$refer_url
=
parse_url($url);
$params
=
$refer_url['query'];
$arr
=
array();
if(!empty($params))
{
$paramsArr
=
explode('&',$params);
foreach($paramsArr
as
$k=>$v)
{
$a
=
explode('=',$v);
$arr[$a[0]]
=
$a[1];
}
}
return
$arr;
}
调用方法
代码如下
$arr
=
getParams();
print_r($arr);
结果
结果:
Array
(
[_p]
=>
index
[_a]
=>
show
[x]
=>
12
[y]
=>
23
)
㈡ php 如何通过url参数来访问类,类似于struts2的action调用。
用这种方式,最好的办法是写一个统一的入口文件来处理请求参数
// 常量-- 你的网站action路径
AC_ROOT = '../'
// 处理类
$action = $_REQUEST['action'] ? $_REQUEST['action'] : 'indexAction';
// 处理方法
$method =$_REQUEST['method'] ? $_REQUEST['method']: 'index';
// 查看类是否存在
$actoinfile = AC_ROOT . $action . '.php';
if(file_exists($actoinfile))
{
// 如果存在
require_once($actoinfile);
// 获取此类的对象
$obj = new $action ();
// 查看处理函数是否存在
if (!method_exists($obj , $method)) {
// 方法不存在返回错误
}
// 进入处理流程
$obj->{$method}();
} else {
// 类不存在 返回错误
}
建议: 你可以看看 Thinkphp 等框架 的入口处理方法, 对你应该很有帮助.
如果参数名和值全部是已知的,那么做一个映射表就可以了。
如果参数的值涉及用户提交的内容,对于过长的内容,最好使用POST,并开启Gzip压缩。
关于URL的长度:
1,普通用户很少通过修改url来实现跳转
2,太短的参数名称就很难理解含义,比如content如果缩短成c,你知道这代表什么意思么?
3,如果说为了便于保存和分享,那么可以考虑short url的处理方式
4,url的长度对性能的影响微乎其微,除非是超长文本,那就是程序设计的问题了
5,如果说刻意追求极短的url,还要进行压缩和解压缩步骤,真的有点画蛇添足了
㈣ 求助 php 获取当前URL 需要对参数进行处理
给您提供思路,具体你自己去试试:
1):先用parse_url()函数将url解析;
2):然后用str_replace()函数将您需要更改的参数进行相应的替换;
㈤ 求解一个php传递url参数问题
不明白。如果你值得是传递URL地址那么。可以对该URL地址进行编码后传输
">
获取参数的时候重新解码此地址
urldecode
():
㈥ thinkphp 取得url参数
一般情况下URL中的参数就是通过GET方法获取,但是由于PATHINFO的特殊性,URL地址最终需要被解析才能转换成GET参数,ThinkPHP对URL是按照一定的规则进行解析的,除非你使用了URL路由规则,如果你对URL做了特别的定制,但是又不想使用URL路由,那么可以使用框架提供的URL参数获取方法直接获取,
例如,我们访问一个如下的网址:
http://serverName/News/archive/2012/01/15
正常情况下,只有通过路由才能解析后面的2012/01/15,现在我们可以直接在News控制器的archive操作方法里面直接使用:
Class NewsAction extends Action {
Public function archive(){
$year = $_GET["_URL_"][2];
$month = $_GET["_URL_"][3];
$day = $_GET["_URL_"][4];
}
}
3.0版开始支持URL地址中的PATH_INFO方式的URL的参数获取方式,需要配置
VAR_URL_PARAMS参数,默认值是:
'VAR_URL_PARAMS' => '_URL_', // PATHINFO URL参数变量
㈦ PHP处理由URL传入的字符串参数(post.php)
1、POST 这里表现的就只是个文件名
2、url表示链接到这个页面的地址 如/post?entry = XXX
3、content确实是内容的意思,但是并不是变量,只是个名称。放在$PATH前面也只是个content+路径而已
4、Entry 不过只URL传过来的参数如/post?entry = XXX 那么$_GET['entry'] 就等于XXX
5、恩
㈧ php如何通过url参数进行查询
好像是这样
首先,第一次传递的参数是从数据库中提取出来的,也就是p c price 这3个都为空的时候。
然后你就判断,当 p c price 这3个传过来的参数有哪个不等于空了,就说明这个已经查到了结果。
你就可以把 price的结果赋值给url上的price了。
大概:
if($_REQUEST['pri']==""){//判断参数是否为空,空则从数据库从提取价钱这个字段值;
$pri=$row['price'];
}else{
$pri=$_REQUEST['pri'];//如果不为空就把前一个价格给继续传递下去
}
<ahref='index.php?p=<?phpecho$row['p']?>&c=<?phpecho$row['p']?>&pri=<?phpecho$pri?>'></a>
//现在这样写的后果是点击一次之后pri的值就不会改变了,要想改变还得看需要的时候再重新把它给清空,重新赋值。
//代码可能达不到你想要的效果,主要是处理上一个url参数的思路。
㈨ 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
希望能帮到你。
㈩ php如何获取url的参数
//url中传递的参数,get形式
$userid=@$_GET['userid'];
//你也可以打印出所有的Get参数,可以更明白其中的奥妙
print_r($_GET);
//如果是表单/post提交,则用$_POST,用法和$_GET类似