有没有人知道一种自动判断 PHP 脚本是被直接调用(作为 HTML 页面)、JavaScript 还是 CSS 样式表的方法?
没有 GET 变量,也没有在文件中设置标志(这就是我现在正在做的)。
只是好奇。
编辑:一些背景知识,因为在答案中被要求提供:我想要这个的原因是我在提供 HTML 页面和提供 CSS 文件时使用的框架。这个框架有一个自定义错误处理程序。当我处于 JS“模式”时,我想将错误作为 JS alert() 抛出。当我处于 CSS 模式时,可能是红色背景或其他东西。为了代码整洁,我想避免使用标志 (?mode=css) 或常量定义,但一些回答者已经确认没有“神奇”的方法来找出资源的用途。
最佳答案
所以你要区分:
<link type="text/css" rel="stylesheet"
href="http://example.com/path/to/php-file.php" />
<script type="text/javascript"
src="http://example.com/path/to/php-file.php"></script>
Or simply opening
http://example.com/path/to/php-file.php
in a browser.
在这些情况下没有设置标志来区分调用文件的方式。您可以检查 $_SERVER
通过做数组 <?php print_r($_SERVER); ?>
并且它们在每种情况下都应该相同。
我认为您要添加 ?mode=css
或 ?mode=js
到 url 的末尾——这似乎是一种切换所需输出类型的合乎逻辑的方法。然后在代码中你可以这样做:
$mode = (isset($_GET['mode']) ? $_GET['mode'] : '';
switch ($mode):
case 'css':
// css
break;
case 'js':
// js
break;
default:
// default
endswitch;
关于php - 告诉从哪里包含了 .php 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1688452/