如何使用 smarty 获取当前 URL
Posted
技术标签:
【中文标题】如何使用 smarty 获取当前 URL【英文标题】:How can I get current URL using smarty 【发布时间】:2012-10-19 18:40:38 【问题描述】:如何使用类似于javascript
中的window.location
的Smarty
获得URL
?
我做了这个
$smarty.server.php_SELF
但它不起作用。
【问题讨论】:
【参考方案1】:你也可以用这个。
$smarty.server.HTTP_HOST$smarty.server.REQUEST_URI
【讨论】:
这应该是最好的答案了! 我同意。它又快又稳。 如果用户篡改标头字段,这可能会导致一些安全问题:***.com/questions/6768793/get-the-full-url-in-php 是的,是的,它存在安全风险,并且与 https 不兼容。 你也可以看这里:reddit.com/r/netsec/comments/1dhpiy/…【参考方案2】:这是控制器代码:
<?php
require_once('libs/Smarty.class.php');
$smarty = new Smarty();
if (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on")
$pro = 'https';
else
$pro = 'http';
$port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]);
$current_url = $pro."://".$_SERVER['SERVER_NAME'].$port.$_SERVER['REQUEST_URI'];
$smarty->assign("current_url",$current_url);
$smarty->display('index.tpl');
?>
您可以在 index.tpl 模板文件中显示变量:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Title</title>
</head>
<body>
$current_url
</body>
</html>
【讨论】:
这是一个简单的PHP文件,不用担心,你可以直接使用这段代码【参考方案3】:看看有什么可用的:
$smarty.server|@var_dump
几个网址示例https://some.example.com/some/path?param=1:
$smarty.server.SCRIPT_URI
https://some.example.com/some/path
$smarty.server.SERVER_NAME
some.example.com
$smarty.server.SCRIPT_URL
/一些/路径
【讨论】:
以上是关于如何使用 smarty 获取当前 URL的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 PHP 和 Smarty 同时获取数据并在浏览器中显示?