php - 告诉从哪里包含了 .php 文件?

标签 php javascript css include header

有没有人知道一种自动判断 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/

相关文章:

javascript - 无法在纯 JS 中组合 setInterval() 和 if(confirm())

html - 缩放时 h4、h5 展开并溢出

php - laravel 存储过程错误

PHP 2 个日期之间

php - 如何修改wordpress搜索以查询分类术语和类别术语?

php - 将 cakephp 2.6 升级到 2.8 以使用 php 7

javascript - 高度更改为自动适用于所有元素

javascript - React - 更改组件 onClick 的样式并重置

css - 数据 URI 不适用于 IE10

html - IE 中的水平滚动区域有问题吗?