JGarnica Asked: 2020-07-30 11:55:06 +0800 CST 2020-07-30 11:55:06 +0800 CST 2020-07-30 11:55:06 +0800 CST 如何处理 PHP 文件路径? 772 大家好,很长一段时间我都想进入 PHP 世界,但我从来没有给自己带来快乐,我遇到的问题之一是如何处理包含和需要的路径,以及是否有多个文件夹来包含 php 文件其他文件夹很复杂。 例如,如果我的系统配置与此类似。 问题是在路由之间移动,因为如果我想在 WorkerImp.php 类中包含 config.php 文件,由于路由,我不知道该怎么做,PHP 告诉我无法包含该文件。 我已经阅读了有关使用基本路由创建配置文件的信息,但我得出了相同的结论,以便能够访问我需要添加 config.php 的那些常量路由 php 2 Answers Voted Best Answer A. Cedano 2020-07-30T13:06:45+08:002020-07-30T13:06:45+08:00 一般来说include,它们是如何require工作的: 如果文件与脚本位于同一目录中 include ("archivo.php"); 如果文件在另一个目录中 如果文件位于脚本的父目录中,则将其放在../文件名的前面: include ("../archivo.php"); ../用于在目录之间返回。 它也可以用作$_SERVER['DOCUMENT_ROOT']参考点。 如果它config.php在根目录中。您可以通过以下方式制作include此文件WorkerImp.php: include($_SERVER['DOCUMENT_ROOT']."/config.php"); 或通过: include("../../config.php"); 在这里,您../../从脚本所在的位置返回两个目录。也就是说,它会返回在应用程序根目录中找到的目录中查找imp>dao>。config.php 另一种可能 我已经实现了以下内容,以保持独立于任何可能的路线更改。 我创建了一个名为的文件dirs.php,在其中定义了项目的所有路由。我将该文件放在根目录(根目录)中。 <?php define('ROOT_PATH', $_SERVER['DOCUMENT_ROOT'].'/'); define('CONTROLLER_PATH', ROOT_PATH.'controller/'); define('MODEL_PATH', ROOT_PATH.'model/'); define('DAO_PATH', ROOT_PATH.'dao/'); define('IMP_PATH', DAO_PATH.'imp/'); ... etc ?> 然后当我需要从项目中包含一些文件时: include_once ($_SERVER['DOCUMENT_ROOT'].'/dirs.php'); include (DAO_PATH."PersonaDao.php"); 请注意,我使用include_once, 这样如果项目中的另一个文件已经这样做了,它就不会再次包含它(要了解includee之间的区别,include_once您可以参考:PHP 中 require、require_once、include、include_once 之间的区别是什么? 使用这种方法有什么好处? 如果由于某种原因我必须更改目录路径Dao,我不必查看涉及该目录的所有部分,我只需更改的值DAO_PATH就是这样。 有什么缺点? 通过包含该文件dirs.php,您将包含一些您可能不会使用的常量。它也不是数百或数千个常量,因此不会影响程序的性能。 Alejo Florez 2020-07-30T13:00:44+08:002020-07-30T13:00:44+08:00 php 中的路由起初管理起来有些复杂,更何况如果你不使用任何框架(例如 laravel),那么它会更烦人。 您在问题中所说的两个选项包括和需要,除了一个错误,在此链接中您将能够了解更多我的意思,通过这些您将能够获取指定文件中的内容并“粘贴”它在你的(简单地说) 如果您想要使用已创建类的功能和其他功能,则必须使用保留字use,在此链接中您可以找到更多信息。 use ruta; 用途是从项目的根目录中搜索类的路径和名称 use carpeta\clase; 重要的提示 重要的是要记住,每当您进入容器文件夹时,php 中的路由都必须放置反斜杠(\),直到找到您的文件 在这里你可以看到更多关于路径和文件 我希望我能帮助你......祝你 PHP 好运 干杯!!!
一般来说
include
,它们是如何require
工作的:如果文件与脚本位于同一目录中
如果文件在另一个目录中
如果文件位于脚本的父目录中,则将其放在
../
文件名的前面:../
用于在目录之间返回。它也可以用作
$_SERVER['DOCUMENT_ROOT']
参考点。如果它
config.php
在根目录中。您可以通过以下方式制作include
此文件WorkerImp.php
:或通过:
在这里,您
../../
从脚本所在的位置返回两个目录。也就是说,它会返回在应用程序根目录中找到的目录中查找imp>dao>
。config.php
另一种可能
我已经实现了以下内容,以保持独立于任何可能的路线更改。
我创建了一个名为的文件
dirs.php
,在其中定义了项目的所有路由。我将该文件放在根目录(根目录)中。然后当我需要从项目中包含一些文件时:
请注意,我使用
include_once
, 这样如果项目中的另一个文件已经这样做了,它就不会再次包含它(要了解include
e之间的区别,include_once
您可以参考:PHP 中 require、require_once、include、include_once 之间的区别是什么?使用这种方法有什么好处?
如果由于某种原因我必须更改目录路径
Dao
,我不必查看涉及该目录的所有部分,我只需更改的值DAO_PATH
就是这样。有什么缺点?
通过包含该文件
dirs.php
,您将包含一些您可能不会使用的常量。它也不是数百或数千个常量,因此不会影响程序的性能。php 中的路由起初管理起来有些复杂,更何况如果你不使用任何框架(例如 laravel),那么它会更烦人。
您在问题中所说的两个选项包括和需要,除了一个错误,在此链接中您将能够了解更多我的意思,通过这些您将能够获取指定文件中的内容并“粘贴”它在你的(简单地说)
如果您想要使用已创建类的功能和其他功能,则必须使用保留字use,在此链接中您可以找到更多信息。
用途是从项目的根目录中搜索类的路径和名称
重要的提示
重要的是要记住,每当您进入容器文件夹时,php 中的路由都必须放置反斜杠(\),直到找到您的文件
在这里你可以看到更多关于路径和文件
我希望我能帮助你......祝你 PHP 好运
干杯!!!