在php中编写路径时感到困惑

在php中编写路径时感到困惑,php,path,include,Php,Path,Include,我对在include中写路径感到困惑 这里有一些细节 我有一个index.php文件,在这里: localhost/widget/explore/staff/index.php 并希望包含一个名为constants.php的文件,该文件位于: localhost/widget/includes/constants.php 告诉我如何编写所需的路径 include '?'; 或者试试这个 include("C:\\Users\\Yousuf\\Desktop\\Web\\localhost\\w

我对在include中写路径感到困惑

这里有一些细节

我有一个index.php文件,在这里:

localhost/widget/explore/staff/index.php

并希望包含一个名为constants.php的文件,该文件位于:

localhost/widget/includes/constants.php

告诉我如何编写所需的路径

include '?';
或者试试这个

include("C:\\Users\\Yousuf\\Desktop\\Web\\localhost\\widget_corp\\includes\\constants.php");

要记住的第一件事是确保任何包含敏感信息DB登录/密码等的文件都存储在应用程序的文档路径之外。你不想让别人很容易地从web浏览器下载这种类型的文件

考虑到上述因素,请查看php.ini文件。具体来说,搜索include_路径值。这将列出在使用“包含”或“需要”时搜索文件的每个文件夹

例如,如果您的搜索路径如下所示:include_path=。:/usr/local/lib/php,那么您可以将常量文件放入/usr/local/lib/php,只需使用include“constants.php”


更好的方法是创建一个单独的文件夹,例如/usr/local/lib/myConstants,并将其添加到include_path值include_path=。:/usr/local/lib/php:/usr/local/lib/myConstants

的末尾,您也可以使用它来更改工作目录,尽管它并不漂亮,可能会让人困惑。

您是在尝试使用PHP的include核心函数,还是在谈论include_path PHP配置选项?@webbandit从技术上讲,include是一个预处理器指令,而不是函数,这就是为什么我喜欢它不带括号的原因,OP编写它的方式:-]警告:require_onceconnection.PHP[功能。需要一次]:无法打开流:第6行的C:\Users\Yousuf\Desktop\Web\localhost\widget\u corp\explore\staff\index.php中没有这样的文件或目录仍然收到错误grrrNow其工作状态认为每个人,特别是lynks为您提供帮助包括“/widget/includes/constants.php”;-我不认为/widget/folder在根目录中不工作仍然收到此错误:Warning:require\u onceconnection.php[函数.require once]:无法打开流:在C:\Users\Yousuf\Desktop\Web\localhost\widget\u corp\explore\staff\index.php的第6行中没有这样的文件或目录。php使用apache文档根,而不是hdd根。您不能执行include'/etc/passwd';您必须执行include'../../../../../../etc passwd';例如。编辑:这是假设apache和php有一个典型的安全配置。从PHP dosc站点:如果定义了一个路径-在Windows上是以驱动器号或\开头的绝对路径,在Unix/Linux系统上是/还是相对于以.或..开头的当前目录-include_路径将被完全忽略。例如,如果文件名以../开头,解析器将查找查找请求文件的父目录。@yusufiqbalpk我只是想让你为我写一条路径。在请求他人帮助时,礼貌一点会有很大帮助。先生,我说的是包含核心功能,如require@yusufiqbalpkDaveyBox正在讨论如何使用该函数。如何包含或要求文件de挂起您的include_path值。如果找不到文件,include将继续,require将停止执行。要让您工作,include'../../includes/constants.php';应该检索文件,但我真的不建议让您的常量文件像这样可访问-正在处理的php很快失败,有人在重新启动服务器后重新启动移动PHP处理,会有人将源代码显示到页面上,并给出如何获取常量文件的说明。PHP可能会访问整个文件系统,因此将文件存储在其他地方只是因为不清楚而安全。最好确保该文件不被web服务器读取并存储在D中我认为aveyBoy在这里是正确的,虽然可能有一点过度保护。但nyson也是半正确的。php可以配置为只访问文件系统的一部分,因为如果常量文件是可读的,它将始终是可读的,无论放在何处。回答时请具体说明
include("C:\\Users\\Yousuf\\Desktop\\Web\\localhost\\widget_corp\\includes\\constants.php");