Thinkphp关于URL路径

269 阅读1分钟
假如你项目首页的URL是:www.test.com/other/Form
假如当前模块是:Index
假如当前操作是:index
那么首页完整的URL:www.test.com/other/Form/…
__ROOT__:/other/thinkphp/mydemo

__SELF__:/other/thinkphp/mydemo/Form/index.php
__ACTION__: /other/thinkphp/mydemo/Form/index.php/Index/index
__URL__: /other/thinkphp/mydemo/Form/index.php/Index
__APP__: /other/thinkphp/mydemo/Form/index.php
__PUBLIC__:/other/thinkphp/mydemo/Public
../public(不区分大小写):/other /thinkphp/mydemo/Form/Tpl/default/Public
APP_PUBLIC_URL:/other/thinkphp/mydemo/Form/Tpl/default/Public
WEB_PUBLIC_URL:/other/thinkphp/mydemo/Public
模板中对路径部分的操作是这样子的,PHP代码:
  • //项目公共目录
  • $tmplContent = str_ireplace('../public',APP_PUBLIC_URL,$tmplContent);
  • //网站公共目录
  • $tmplContent = str_replace('__PUBLIC__',WEB_PUBLIC_URL,$tmplContent);
  • //网站根目录
  • $tmplContent = str_replace('__ROOT__',__ROOT__,$tmplContent);
  • //当前项目地址
  • $tmplContent = str_replace('__APP__',__APP__,$tmplContent);
  • //当前模块地址
  • $tmplContent = str_replace('__URL__',__URL__,$tmplContent);
  • //当前项目操作地址
  • $tmplContent = str_replace('__ACTION__',__ACTION__,$tmplContent);
  • //当前页面操作地址
  • $tmplContent = str_replace('__SELF__',__SELF__,$tmplContent);
测试网址:http://localhost/blog/testurl.php?id=5
  • //获取域名或主机地址
  • echo $_SERVER['HTTP_HOST']."
  • "; #localhost
  • //获取网页地址
  • echo $_SERVER['PHP_SELF']."
  • "; #/blog/testurl.php
  • //获取网址参数
  • echo $_SERVER["QUERY_STRING"]."
  • "; #id=5
  • //获取用户代理
  • echo $_SERVER['HTTP_REFERER']."
  • ";
  • //获取完整的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