PHP中获取当前页面的完整URL、PHP URL处理、获取不带扩展名的文件名
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
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中获取当前页面的完整URL、PHP URL处理、获取不带扩展名的文件名的更多相关文章
- PHP中$_SERVER获取当前页面的完整URL地址
PHP中$_SERVER获取当前页面的完整URL地址,其实很简单,主要是通过$_SERVER超全局变量来实现的. 具体PHP中$_SERVER获取当前页面的完整URL地址如下. #测试网址: ...
- Delphi获取文件名、文件名不带扩展名、文件名的方法;delphi 获取文件所在路径
取文件名 ExtractFileName(FileName); 取文件扩展名: ExtractFileExt(filename); 取文件名,不带扩展名: 方法一: Function Extrac ...
- PHP中获取当前页面的完整URL & php $_SERVER中的SERVER_NAME 和HTTP_HOST的区别
#测试网址: http://localhost/blog/testurl.php?id=5 //获取域名或主机地址 echo $_SERVER['HTTP_HOST']."<b ...
- PHP中获取当前页面的完整URL
//获取域名或主机地址 echo $_SERVER['HTTP_HOST']."<br>"; #localhost//获取网页地址 echo $_SERVER['PHP ...
- PHP/JS中获取当前页面的完整URL
javascript实现: top.location.href 顶级窗口的地址this.location.href 当前窗口的地址 php实现 PHP实现 #测试网址: http://localhos ...
- php获取当前页面的完整url
javascript实现: top.location.href 顶级窗口的地址 this.location.href 当前窗口的地址 php实现: //测试网址: http://localhost/b ...
- 获取当前页面的完整URL
PHP实现 #测试网址: http://localhost/blog/testurl.php?id=5 //获取域名或主机地址 echo $_SERVER['HTTP_HOST']."< ...
- thymeleaf 页面获取当前页面的完整URL地址
下面两种方法是一样的 <div th:text="${#httpServletRequest.getRequestURL() +'?'+ #httpServletRequest.get ...
- Delphi获取文件名、不带扩展名文件名、文件所在路径、上级文件夹路径的方法
1.获取不带扩展名的文件名方法,利用ChangeFileExt函数修改传入参数的扩展为空,并不会对文件本身产生变更. ChangeFileExt(ExtractFileName('D:\KK\Test ...
随机推荐
- 工控漏洞利用框架 - ISF(Industrial Security Framework)
一. 框架介绍 本框架主要使用Python语言开发,通过集成ShadowBroker释放的NSA工具Fuzzbunch攻击框架,开发一款适合工控漏洞利用的框架.由于Fuzzbunch攻击框架仅适用于P ...
- jQuery获取表单全部数据
iQuery如何获取表单的全部数据,用于ajax提交 var formData = {}; var t = $('#Form').serializeArray(); $.each(t, functio ...
- Selenium3-浏览器与驱动对照
在学selenium自动化测试时,遇到的第一个大问题便是浏览器版本.浏览器驱动版本与selenium的版本不对应,而无法驱动浏览器进行自动化操作. 收集了网上的一些技术文档,决定也整理一份相对较全面的 ...
- da面板修改SSH端口号
进入da面板,找到管理工具菜单下的文件编辑器,点击进入,选择所要编辑的文件/etc/ssh/sshd_config 点击右侧的显示文件,即可打开该文件进行编辑,例如可以将原始端口22修改为 33 #P ...
- hashmap C++实现分析及std::unordered_map拓展
今天想到哈希函数,好像解决冲突的只了解了一种链地址法而且也很模糊,就查了些资料复习一下 1.哈希Hash 就是把任意长度的输入,通过哈希算法,变换成固定长度的输出(通常是整型),该输出就是哈希值. 这 ...
- 计算机基础之BIOS
BIOS BIOS是英文"Basic Input Output System"的缩略词,直译过来后中文名称就是"基本输入输出系统".在IBM PC兼容系统上,是 ...
- Wuss Weapp 微信小程序 UI 组件库
微信小程序 UI 组件库 Github地址 https://github.com/phonycode/wuss-weapp 文档 https://phonycode.github.io/wuss-we ...
- NOI2019 游记
day-1 广二真好看QAQ (要是我也能在这里读书就好了) 提供的餐饮好评QAQ 发现室友是雅礼集训时候的室友,衡水小姐姐zyn. 但是寝室没有网没有信号没有桌子真的不良心啊...... 发现小卖部 ...
- 顺序表应用3:元素位置互换之移位算法(SDUT 3326)
题解:用一个for,循环m次,每次都把最前面的放到最后面,就可以了. #include <stdio.h> #include <stdlib.h> #include <s ...
- Java实验课:命令行参数是什么?
命令行参数:在命令行中给定的参数就是命令行参数.(即从输入位置角度理解). 命令行的参数 1. 什么是命令行的参数? 如: java Test1 365 156 "China" ( ...