PHP获取当前相对于域名目录的方法


Posted in PHP onJune 26, 2015

本文实例讲述了PHP获取当前相对于域名目录的方法。分享给大家供大家参考。具体如下:

http://127.0.0.1/dev/classd/index.php/download
比如这个地址,我想得到红色区域的地址用于生成站内的链接,名为 baseurl。

用 $_SERVER['SCRIPT_NAME'] 就可以了, $_SERVER['SCRIPT_NAME'] 是当前正在访问的PHP文件的相对路径,只要如下稍作处理:

从$_SERVER['SCRIPT_NAME']中获取目录部分,并且替换dirname函数可能出现的反斜杠问题  

$baseUrl = str_replace('\\','/',dirname($_SERVER['SCRIPT_NAME']));

保证为空时能返回可以使用的正常值 

$baseUrl = empty($baseUrl) ? '/' : '/'.trim($baseUrl,'/').'/';

这样就可以正常获取到 /dev/classd/ 这部分的目录地址了。

顺便看了一下 Zend Framework 的 baseUrl() 函数,结果一看那么一大堆代码就没再继续看了,我就想不通同样的功能他用了一大堆一大堆的代码,从$_SERVER里获取了一堆,然后中间经过两三个类,四五个方法才最终被我们直接调用,除了中间有三行是获取当前的PHP文件以外,其它都是没用和无谓的处理,ZF本身运行的已经够慢的了,这是什么一个意思呢。感兴趣的朋友可以研究一下。

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
PHP Ajax中文乱码问题解决方法
Feb 27 PHP
php 什么是PEAR?(第三篇)
Mar 19 PHP
php radio 单选框获取与保持值的实现代码
May 15 PHP
在smarty模板中使用PHP函数的方法
Apr 23 PHP
php中多维数组按指定value排序的实现代码
Aug 19 PHP
推荐一款MAC OS X 下php集成开发环境mamp
Nov 08 PHP
php 类自动载入的方法
Jun 03 PHP
php中preg_match的isU代表什么意思
Oct 01 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
Jul 13 PHP
Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
Oct 11 PHP
Thinkphp整合阿里云OSS图片上传实例代码
Apr 28 PHP
PHP设计模式之外观模式(Facade)入门与应用详解
Dec 13 PHP
php通过获取头信息判断图片类型的方法
Jun 26 #PHP
以文件形式缓存php变量的方法
Jun 26 #PHP
PHP批量去除BOM头代码分享
Jun 26 #PHP
PHP多态代码实例
Jun 26 #PHP
PHP微信开发之二维码生成类
Jun 26 #PHP
Thinkphp关闭缓存的方法
Jun 26 #PHP
php获取、检查类名、函数名、方法名的函数方法
Jun 25 #PHP
You might like
服务器变量 $_SERVER 的深入解析
2013/07/02 PHP
PHP中include与require使用方法区别详解
2013/10/19 PHP
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
2014/06/23 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
JavaScript Event学习第三章 早期的事件处理程序
2010/02/07 Javascript
浅谈Javascript嵌套函数及闭包
2010/11/09 Javascript
基于JQUERY的两个ListBox子项互相调整的实现代码
2011/05/07 Javascript
Jquery倒数计时按钮setTimeout的实例代码
2013/07/04 Javascript
Javascript call和apply区别及使用方法
2013/11/14 Javascript
bootstrap表格分页实例讲解
2016/12/30 Javascript
JavaScript函数柯里化原理与用法分析
2017/03/31 Javascript
jQuery实现下拉菜单的实例代码
2017/06/19 jQuery
对Angular中单向数据流的深入理解
2018/03/31 Javascript
使用jquery模拟a标签的click事件无法实现跳转的解决
2018/12/04 jQuery
Vue 2.0 侦听器 watch属性代码详解
2019/06/19 Javascript
vue项目中使用eslint+prettier规范与检查代码的方法
2020/01/16 Javascript
在vue中对数组值变化的监听与重新响应渲染操作
2020/07/17 Javascript
[02:23]完美世界全国高校联赛街访DOTA2第一期
2019/11/28 DOTA
《Python之禅》中对于Python编程过程中的一些建议
2015/04/03 Python
Python使用当前时间、随机数产生一个唯一数字的方法
2017/09/18 Python
python3.5 email实现发送邮件功能
2018/05/22 Python
解决pip install xxx报错SyntaxError: invalid syntax的问题
2018/11/30 Python
Apache,wsgi,django 程序部署配置方法详解
2019/07/01 Python
Python qqbot 实现qq机器人的示例代码
2019/07/11 Python
使用TensorFlow直接获取处理MNIST数据方式
2020/02/10 Python
css3实现一款模仿iphone样式的注册表单
2013/03/20 HTML / CSS
使用phonegap克隆和删除联系人的实现方法
2017/03/31 HTML / CSS
浅谈移动端网页图片预加载方案
2018/11/05 HTML / CSS
美国一家专业的太阳镜网上零售商:Solstice太阳镜
2016/07/25 全球购物
数据库笔试题
2013/05/09 面试题
你经历的项目中的SCM配置项主要有哪些?什么是配置项?
2013/11/04 面试题
个人主要事迹材料
2014/08/26 职场文书
师德师风剖析材料
2014/09/30 职场文书
电力安全学习心得体会
2016/01/18 职场文书
大学自主招生自荐信(2016精选篇)
2016/01/28 职场文书
Oracle 数据仓库ETL技术之多表插入语句的示例详解
2021/04/12 Oracle