根据打开的模板执行不同的操作
Perform different actions depending of the opened template
我有 3 个模板页面 (smarty templates
) 和 1 个 PHP 文件,其条件根据打开的页面显示不同的数据。
目录smarty
page1.tpl
page2.tpl
page3.tpl
目录public_html
file.php
这是file.php
if( stripos($_SERVER['REQUEST_URI'], 'page1.php' )) {
echo 'page1';
} else if( stripos($_SERVER['REQUEST_URI'], 'page2.php' )) {
echo 'page2';
} else if( stripos($_SERVER['REQUEST_URI'], 'page3.php' )) {
echo 'page3';
}
现在,当我打开 https://example.com/page1.php
时,应该进入第一个状态并回显第 1 页。这不会发生。它显示空白页。
我猜这是因为我实际上没有名为 page1.php
的文件。如果我创建空 page1.php
文件,一切正常,但我的想法是将所有内容都放在一页中 file.php
并根据打开的页面显示不同的数据。
我在 file.php
中尝试做的是获取 url 并且如果结束 page1.php
则显示 page1 的数据等等。
这是应该怎么做还是有其他方法?
您是否将请求从 page1.php 重定向到 file.php(例如在 Apache 上通过 mod_rewrite)?否则当文件 page1.php 不存在时不会执行任何操作。
也许指向示例。com/file.php?p=page1.php 有效。但在这种情况下,最好检查脚本中的 get 参数。例如:
if (isset($_GET['p']) { $page = $_GET['p']; }
if ($page == 'page1.php') ...
对于后者你可以考虑使用 switch
statement.
我有 3 个模板页面 (smarty templates
) 和 1 个 PHP 文件,其条件根据打开的页面显示不同的数据。
目录smarty
page1.tpl
page2.tpl
page3.tpl
目录public_html
file.php
这是file.php
if( stripos($_SERVER['REQUEST_URI'], 'page1.php' )) {
echo 'page1';
} else if( stripos($_SERVER['REQUEST_URI'], 'page2.php' )) {
echo 'page2';
} else if( stripos($_SERVER['REQUEST_URI'], 'page3.php' )) {
echo 'page3';
}
现在,当我打开 https://example.com/page1.php
时,应该进入第一个状态并回显第 1 页。这不会发生。它显示空白页。
我猜这是因为我实际上没有名为 page1.php
的文件。如果我创建空 page1.php
文件,一切正常,但我的想法是将所有内容都放在一页中 file.php
并根据打开的页面显示不同的数据。
我在 file.php
中尝试做的是获取 url 并且如果结束 page1.php
则显示 page1 的数据等等。
这是应该怎么做还是有其他方法?
您是否将请求从 page1.php 重定向到 file.php(例如在 Apache 上通过 mod_rewrite)?否则当文件 page1.php 不存在时不会执行任何操作。
也许指向示例。com/file.php?p=page1.php 有效。但在这种情况下,最好检查脚本中的 get 参数。例如:
if (isset($_GET['p']) { $page = $_GET['p']; }
if ($page == 'page1.php') ...
对于后者你可以考虑使用 switch
statement.