PHP中获取当前页面的完整URL、PHP URL处理、获取不带扩展名的文件名 php URL处理函数 php获取文件名和后缀名

javascript实现:

top.location.href   顶级窗口的地址
this.location.href 当前窗口的地址



复制代码
复制代码
PHP实现
复制代码
复制代码
#测试网址:     http://localhost/blog/testurl.php?id=5

//获取域名或主机地址
echo $_SERVER['HTTP_HOST']."<br>"; #localhost

//获取网页地址
echo $_SERVER['PHP_SELF']."<br>"; #/blog/testurl.php

//获取网址参数
echo $_SERVER["QUERY_STRING"]."<br>"; #id=5

//获取用户代理
echo $_SERVER['HTTP_REFERER']."<br>";

//获取完整的url
echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
#http://localhost/blog/testurl.php?id=5

//包含端口号的完整url
echo 'http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
#http://localhost:80/blog/testurl.php?id=5

//只取路径
$url='http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"];
echo dirname($url);
#http://localhost/blog
复制代码
复制代码
==========================================

php URL处理函数

Posted on  2017-11-24 18:24 星_初落 阅读(495) 评论(0) 编辑 收藏

parse_url()    basename()    pathinfo()    dirname() 用法

parse_url()

       是一计算机函数,功能是解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分。
本函数不是用来验证给定 URL 的合法性的,只是将其分解为下面列出的部分。不完整的 URL 也被接受,parse_url() 会尝试尽量正确地将其解析。

范例1

复制代码
$usr = "https://baike.baidu.com/item/parse_url/3067021?fr=aladdin";

print_r(parse_url($usr));

Array //输出结果
(
    [scheme] => https
    [host] => baike.baidu.com
    [path] => /item/parse_url/3067021
    [query] => fr=aladdin
)
复制代码

parse_usr()有两个参数,第一个参数是url地址,第二个参数是你想要的部分(这个可写可不写),第二个参数不写返回的是关联数组。

范例2

复制代码
$url = 'http://username:password@hostname/path?arg=value#anchor';
var_dump(parse_url($url));

array(7) { //输出结果
  ["scheme"]=>
  string(4) "http"
  ["host"]=>
  string(8) "hostname"
  ["user"]=>
  string(8) "username"
  ["pass"]=>
  string(8) "password"
  ["path"]=>
  string(5) "/path"
  ["query"]=>
  string(9) "arg=value"
  ["fragment"]=>
  string(6) "anchor"
}
复制代码


以下是第二个参数与以上输出一一对应可得到对应的值
PHP_URL_SCHEME
PHP_URL_HOST
PHP_URL_PORT
PHP_URL_USER
PHP_URL_PASS
PHP_URL_PATH
PHP_URL_QUERY
PHP_URL_FRAGMENT

如:

$url = 'https://baike.baidu.com/item/parse_url/3067021?fr=aladdin';
print_r(parse_url($url,PHP_URL_HOST));

baike.baidu.com //输出结果 

basename()

basename -- 返回路径中的文件名部分。给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。如果文件名是以 suffix 结束的,那这一部分也会被去掉。在 Windows 中,斜线(/)和反斜线(\)都可以用作目录分隔符。在其它环境下是斜线(/)。

范例1

$path = "http://www.test.com/html/test.php";
$file = basename($path);
print_r($file);

test.php //输出结果


单是这个basename有个问题(这个是我认为的它会把test.php后面的内容一起输出出来)
缺点范例

$path = "http://www.test.com/html/test.php?k=1";
$file = basename($path);
print_r($file);
test.php?k=1 //输出结果


它可以结合上一个函数使用!
范例

扫描二维码关注公众号,回复: 1958368 查看本文章
$path = "http://www.test.com/html/test.php?k=1";
$file = parse_url($path,PHP_URL_PATH);
$f = basename($file);
print_r($f);

test.php //输出结果

pathinfo()

返回一个关联数组包含有 path 的信息。包括以下的数组单元:。

范例1

复制代码
$path = "http://www.test.com/html/test.php?k=1";
$path_parts = pathinfo($path);
print_r($path_parts);

Array //输出结果
(
    [dirname] => http://www.test.com/html
    [basename] => test.php?k=1
    [extension] => php?k=1
    [filename] => test
)
复制代码


可以通过参数 options 指定要返回哪些单元。它们包括:PATHINFO_DIRNAME,PATHINFO_BASENAME,PATHINFO_FILENAME 和 PATHINFO_EXTENSION。

范例2

$path = "http://www.test.com/html/test.php?k=1";
$path_parts = pathinfo($path,PATHINFO_FILENAME);
print_r($path_parts);

test //输出结果

dirname()

dirname -- 返回路径中的目录部分。给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名。
范例

$path = "http://www.test.com/html/test.php?k=1";
$dir = dirname($path);
print_r($dir);

http://www.test.com/html //输出结果
======================================================

php获取文件名和后缀名

 

php获取文件名

1 function retrieve($url) 
2 { 
3 preg_match('/\/([^\/]+\.[a-z]+)[^\/]*$/',$url,$match); 
4 return $match[1]; 
5 } 

php获取文件扩展名 

复制代码
复制代码
1 <?php 
2 function getExt($url) 
3 { 
4 $path=parse_url($url); 
5 $str=explode('.',$path['path']); 
6 return $str[1]; 
7 } 
8 echo getExt('http://tools.jb51.net/abc/de/fg.php?id=1'); 
9 ?> 
复制代码
复制代码

basename:

复制代码
复制代码
<?php
$path = "/testweb/home.php";

//显示带有文件扩展名的文件名
echo basename($path);

//显示不带有文件扩展名的文件名
echo basename($path,".php");
?> 
复制代码
复制代码

输出:

home.php
home



======================
最终直接获取不带扩展名的文件名

<?PHP
echo basename($_SERVER['PHP_SELF'],".php");
?>



parse_url()    basename()    pathinfo()    dirname() 用法

parse_url()

       是一计算机函数,功能是解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分。
本函数不是用来验证给定 URL 的合法性的,只是将其分解为下面列出的部分。不完整的 URL 也被接受,parse_url() 会尝试尽量正确地将其解析。

范例1

复制代码
$usr = "https://baike.baidu.com/item/parse_url/3067021?fr=aladdin";

print_r(parse_url($usr));

Array //输出结果
(
    [scheme] => https
    [host] => baike.baidu.com
    [path] => /item/parse_url/3067021
    [query] => fr=aladdin
)
复制代码

parse_usr()有两个参数,第一个参数是url地址,第二个参数是你想要的部分(这个可写可不写),第二个参数不写返回的是关联数组。

范例2

复制代码
$url = 'http://username:password@hostname/path?arg=value#anchor';
var_dump(parse_url($url));

array(7) { //输出结果
  ["scheme"]=>
  string(4) "http"
  ["host"]=>
  string(8) "hostname"
  ["user"]=>
  string(8) "username"
  ["pass"]=>
  string(8) "password"
  ["path"]=>
  string(5) "/path"
  ["query"]=>
  string(9) "arg=value"
  ["fragment"]=>
  string(6) "anchor"
}
复制代码


以下是第二个参数与以上输出一一对应可得到对应的值
PHP_URL_SCHEME
PHP_URL_HOST
PHP_URL_PORT
PHP_URL_USER
PHP_URL_PASS
PHP_URL_PATH
PHP_URL_QUERY
PHP_URL_FRAGMENT

如:

$url = 'https://baike.baidu.com/item/parse_url/3067021?fr=aladdin';
print_r(parse_url($url,PHP_URL_HOST));

baike.baidu.com //输出结果 

basename()

basename -- 返回路径中的文件名部分。给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。如果文件名是以 suffix 结束的,那这一部分也会被去掉。在 Windows 中,斜线(/)和反斜线(\)都可以用作目录分隔符。在其它环境下是斜线(/)。

范例1

$path = "http://www.test.com/html/test.php";
$file = basename($path);
print_r($file);

test.php //输出结果


单是这个basename有个问题(这个是我认为的它会把test.php后面的内容一起输出出来)
缺点范例

$path = "http://www.test.com/html/test.php?k=1";
$file = basename($path);
print_r($file);
test.php?k=1 //输出结果


它可以结合上一个函数使用!
范例

$path = "http://www.test.com/html/test.php?k=1";
$file = parse_url($path,PHP_URL_PATH);
$f = basename($file);
print_r($f);

test.php //输出结果

pathinfo()

返回一个关联数组包含有 path 的信息。包括以下的数组单元:。

范例1

复制代码
$path = "http://www.test.com/html/test.php?k=1";
$path_parts = pathinfo($path);
print_r($path_parts);

Array //输出结果
(
    [dirname] => http://www.test.com/html
    [basename] => test.php?k=1
    [extension] => php?k=1
    [filename] => test
)
复制代码


可以通过参数 options 指定要返回哪些单元。它们包括:PATHINFO_DIRNAME,PATHINFO_BASENAME,PATHINFO_FILENAME 和 PATHINFO_EXTENSION。

范例2

$path = "http://www.test.com/html/test.php?k=1";
$path_parts = pathinfo($path,PATHINFO_FILENAME);
print_r($path_parts);

test //输出结果

dirname()

dirname -- 返回路径中的目录部分。给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名。
范例

$path = "http://www.test.com/html/test.php?k=1";
$dir = dirname($path);
print_r($dir);

http://www.test.com/html //输出结果
======================================================

php获取文件名和后缀名

 

php获取文件名

1 function retrieve($url) 
2 { 
3 preg_match('/\/([^\/]+\.[a-z]+)[^\/]*$/',$url,$match); 
4 return $match[1]; 
5 } 

php获取文件扩展名 

复制代码
复制代码
1 <?php 
2 function getExt($url) 
3 { 
4 $path=parse_url($url); 
5 $str=explode('.',$path['path']); 
6 return $str[1]; 
7 } 
8 echo getExt('http://tools.jb51.net/abc/de/fg.php?id=1'); 
9 ?> 
复制代码
复制代码

basename:

复制代码
复制代码
<?php
$path = "/testweb/home.php";

//显示带有文件扩展名的文件名
echo basename($path);

//显示不带有文件扩展名的文件名
echo basename($path,".php");
?> 
复制代码
复制代码

输出:

home.php
home



======================
最终直接获取不带扩展名的文件名

<?PHP
echo basename($_SERVER['PHP_SELF'],".php");
?>



php获取文件名

1 function retrieve($url) 
2 { 
3 preg_match('/\/([^\/]+\.[a-z]+)[^\/]*$/',$url,$match); 
4 return $match[1]; 
5 } 

php获取文件扩展名 

复制代码
复制代码
1 <?php 
2 function getExt($url) 
3 { 
4 $path=parse_url($url); 
5 $str=explode('.',$path['path']); 
6 return $str[1]; 
7 } 
8 echo getExt('http://tools.jb51.net/abc/de/fg.php?id=1'); 
9 ?> 
复制代码
复制代码

basename:

复制代码
复制代码
<?php
$path = "/testweb/home.php";

//显示带有文件扩展名的文件名
echo basename($path);

//显示不带有文件扩展名的文件名
echo basename($path,".php");
?> 
复制代码
复制代码

输出:

home.php
home



======================
最终直接获取不带扩展名的文件名

<?PHP
echo basename($_SERVER['PHP_SELF'],".php");
?>



猜你喜欢

转载自www.cnblogs.com/apolloren/p/9281562.html