php处理url
① php中URL怎么理解
xxx.php?page=5
像上面这个URL,在XXX.php这个网页中有这样的一个变量:$_GET[page],这个变量的数值就是URL等号后面的那个5.
要想懂得分页的原理,就要有一定的PHP基础知识才可以,至少应该了解页面传值,你可以到PHP100的网站去下载第13讲,相信看过之后,你会对php分页有一个较为清晰的认识。
② php怎么对已编码的url字符串进行解码
如果直接使用base64_encode和base64_decode方法的话,生成的字符串可能不适用URL地址。下面的方法可以解决该问题:
URL安全的字符串编码:
复制代码
代码如下:
function urlsafe_b64encode($string) {
$data = base64_encode($string);
$data =
str_replace(array('+','/','='),array('-','_',''),$data);
return
$data;
}
URL安全的字符串解码:
复制代码
代码如下:
function urlsafe_b64decode($string) {
$data = str_replace(array('-','_'),array('+','/'),$string);
$mod4 =
strlen($data) % 4;
if ($mod4) {
$data .= substr('====',
$mod4);
}
return base64_decode($data);
}
③ PHP 如何获取当前URL并去掉.html
很简单啊:
<?php
//
第一步:你需要得到你的URL:
$URL=$_SERVER['HTTP_HOST']
.
$_SERVER['REQUEST_URI'];
//第二步:把得到的URL后面的“.HTML”去掉:
$geturl=str_replace('.html','',$URL);
echo
$geturl;
?>
但是,可但是:
你的这个页面应该是php的才对吧,如果是html的,就一定是应用了拟静态技术来重写URL,这样的话,上面的代码你也可以使用,如果是生成的
静态页面
,那么很不好意思,这个基本上不可行了。也无法达到你的意愿。
④ 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;}?>
(4)php处理url扩展阅读:
获取域名或主机地址 :echo $_SERVER['HTTP_HOST'].""; #localhost
获取网页地址:echo $_SERVER['PHP_SELF'].""; #/blog/testurl.php
3.获取网址参数:echo $_SERVER["QUERY_STRING"].""; #id=5
4.获取用户代理:echo $_SERVER['HTTP_REFERER']."";
⑤ 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']));
}
最终可实现以下形式:
⑥ PHP如何实现url/do的形式
url/?do是一种URL参数,需要你在后台进行处理,比如你写上一个url:
localhost/index.php?id=123
那么在后台你使用$_GET['id']就可以获取到这个123,然后进行相应的处理,还有就是比如discuz的那种?mod=xxx&action=yyy的那种,原理都是一样的,取得内容后直接进行处理即可。
⑦ 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 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>
⑨ 如何通过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"],作用:获取用户的代理。
⑩ 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