require_once被忽略

2024-01-24

Windows 上的 php 出现奇怪的问题...我的应用程序加载一个“核心”文件,该文件加载设置文件、注册自动加载、进行初始化等。在核心文件的顶部我有 include_once("config.php");这对于当前目录中的任何内容都适用,如果我包含来自单独目录的核心文件,尽管它只是默默地忽略配置文件的包含...以前有人见过这个吗?

/webroot/core.php

<?php
  require_once "config.php";
  //register autoloads
  //do some initialization... standard stuff
?>

/webroot/config.php

<?php
  define("WEB_ROOT","/webroot");
  define("DB_USER","root");
  // ... more stuff...
?>

/webroot/admin/index.php

<?php
  require_once("../dbconnect.php");
  echo WEB_ROOT;
  // print string literal WEB_ROOT rather than value in config.php
?>

我的理解是文件操作是相对于发出请求的文件的目录而言的, require_once("config.php") 不应该选择相对于 core.php 的文件吗?这段代码在 Mac 或 Linux 上的工作原理与我预期的一样,但在 Windows 上根本不起作用(如果我更改要求以使用完整路径或 ../,它就可以工作)

真正疯狂的是 require_once("config.php") 不会抛出任何错误,但里面的代码没有被执行!


如果 PHP 默默地忽略错误,请尝试将其放在所请求的文件的顶部:

ini_set('display_errors', 'On');
error_reporting(E_ALL);

现在所有错误都应该可见。

然后,最佳实践(根据我的说法)是在请求的文件中(而不是在任何包含的文件中)定义一些具有应用程序根的完整文件系统路径的常量。所以在index.php如果应用程序根目录是/webroot/admin:

define('APP_DIR', dirname(__FILE__));

之后,当您包含某些内容时,请使用此常量。如果目录结构是:

/webroot/
    admin/
        index.php
    config.php
    core.php

你想包括config.php into index.php:

require_once APP_DIR . '/../config.php';

In core.php包括config.php这将是:

require_once APP_DIR . '/../config.php';

等等。

使用绝对文件系统路径可以防止任何歧义。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

require_once被忽略 的相关文章

  • Javascript crc32 函数和 PHP crc32 与 UTF8 不匹配

    我一直在尝试从 PHP 获取 crc32 函数来匹配 javascript 生成的结果 我已经使用了 4 个不同的 javascript crc32 库 1 http www webtoolkit info javascript crc32
  • 正则表达式删除带有数字的单词

    我想删除产品名称中带有数字 参考 或小单词 2 个或更少字符 的单词 但我找不到好的正则表达式 一些例子 链式防回弹ECS 2035 应成为 链式防反弹 指南 35 厘米俄勒冈 Intenz 应该成为 俄勒冈州 Intenz 指南 Tron
  • 为什么我的 php 代码无法连接到远程 MySql 数据库?

    我正在尝试连接到远程 MySql 数据库 但收到以下错误消息 警告 mysqli connect HY000 2002 连接尝试失败 因为连接方在一段时间后没有正确响应 或者由于连接的主机未能响应而建立的连接失败 在 C myLocalDi
  • PHP 指针与引用

    在 PHP 中 使用指针有什么区别 例如 function foo var var 3 a 0 foo a 以及参考 function foo var var 3 a 0 foo a 它们都修改了原始变量的值 但是它们内部的表示方式不同吗
  • XAMPP Windows 上的 Php Cron 作业

    嗯 我是这个词的新手CRON 据我所知 这是一个Unix安排特定操作在定义的时间间隔后执行的概念 我需要运行一个php文件 每小时更新一次数据库 但我的困惑在于安排执行 我在用XAMPP用于 Windows 7 上的本地开发测试 我发现了什
  • 用php将数字转换为字母[重复]

    这个问题在这里已经有答案了 可能的重复 在 PHP 中将数字 1 2 3 转换为字符串 一 二 三 https stackoverflow com questions 2112571 converting a number 1 2 3 to
  • CodeIgniter 2.1.0 的会话库中是否存在任何已知错误?为什么我会被踢出去? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我正在开发
  • 如果用户登录,则更改引导程序中的导航栏

    我有一个标准菜单 包括 登录 和 创建用户 的选项 我想要的是 当您创建用户或登录整个导航栏菜单来更改 例如 我的用户页面 和 注销 时 我该怎么做 div div
  • 如何在 PHPUnit 中跨多个测试模拟测试 Web 服务?

    我正在尝试使用 PHPUnit 测试 Web 服务接口类 基本上 这个类调用肥皂客户端目的 我正在尝试使用 PHPUnit 测试此类getMockFromWsdl这里描述的方法 http www phpunit de manual curr
  • 编写 PHP SQL 更新语句的最佳方法

    我有这个 PHP SQL 语句 updateCategory UPDATE category SET name name description description parent parent active active WHERE i
  • “composer”在 Windows 服务器中未被识别为内部或外部命令

    我使用的是Windows Server 2008操作系统 我下载作曲家安装程序 exe https getcomposer org download 并安装到我的电脑上 当我尝试时composer install 我收到错误 compose
  • 使用 Kendo Upload 进行 Kendo Grid 内联编辑返回空结果

    我有 Kendo UI Gridinline编辑和我的领域之一 propertyLogo I use 剑道上传 https demos telerik com kendo ui upload index上传图像 使用kendoUpload函
  • 查找关联数组中最小值的键

    在 PHP 中 假设您有一个如下所示的关联数组 pets array cats gt 1 dogs gt 2 fish gt 3 我如何找到具有最低值的密钥 在这里 我要寻找cats 是否有一些我错过的内置 PHP 函数可以实现此目的 如果
  • 如何在 apache 中访问唯一 ID?

    如何访问 apache 跟踪每个请求的 unique id 我想在它调用的任何 php 脚本中跟踪它 并记录每个请求 我删除了以下行的评论http conf file LoadModule unique id module libexec
  • 子目录中的 CakePHP 控制器和模型

    你好 我想知道如何将我的组件和模型放在子目录中 假设我有一个 Web 应用程序 它有 3 个不同的区域 管理员 用户 开发人员 每个区域执行不同的操作并具有完全不同的界面 所以我希望管理员去http www site com admin h
  • 根据 WooCommerce 中的订单数量设置折扣

    在WooCommerce中 如何根据订单数量设置折扣 例如 我想根据客户订单应用折扣 首单折扣 50 美元 第二次订购折扣 30 美元 第三次订购折扣10美元 我搜索过互联网但没有找到任何可用的解决方案或插件 Thanks 这是一个挂钩的自
  • 帮助将二进制图像数据从 SQL Server 读取到 PHP 中

    我似乎无法找到将二进制数据从 SQL 服务器读取到 PHP 的方法 我正在开发一个项目 需要能够将图像直接存储在 SQL 表中 而不是文件系统上 目前 我一直在使用这样的查询 插入 myTable 文档 选择 从 OPENROWSET BU
  • 如何使用 php 通过 https 下载文件

    我需要使用 PHP 下载 xml 文件 我可以在对文件进行curl 调用时通过设置以下选项来读取文件的内容 curl setopt http CURLOPT SSL VERIFYPEER false curl setopt http CUR
  • 运行 shell 命令并将输出发送到文件?

    我需要能够通过 php 脚本修改我的 openvpn 身份验证文件 我已将我的 http 用户设置为免通 sudoer 因为这台机器仅在我的家庭网络中可用 我目前有以下命令 echo shell exec sudo echo usernam
  • 根据产品变体术语将收件人添加到 Woocommerce 电子邮件通知

    我创建了一个 Woocommerce 插件并要求它做两件事 根据购物车中的产品变体 向特定电子邮件地址发送通知消息 电子邮件必须仅包含相关产品 不得包含其他属性的产品 例如 产品 A 具有名为 Chef 的属性 其中 Chef one 和

随机推荐