Lea*_*cim 5 php file path absolute
这个问题仍未解决
我正在关注的视频PHP教程正在构建一个名为initialize.php的文件,其中它使用PHP预定义的常量Directory_Separator,然后定义site_root.site_root是PHP用于查找所需文件的绝对文件路径(不是Web服务器路径).他给了我们以下代码
defined('DS') ? null : define('DS', DIRECTORY_SEPARATOR);
defined('SITE_ROOT') ? null :
define ('SITE_ROOT', DS.'Users'.DS.'kevin'.DS.'Sites'.DS.'photo_gallery');
Run Code Online (Sandbox Code Playgroud)
我假设他的计算机上的文件路径是root/users/kevin/sites/photogallery
我不是在我的计算机上构建网站,而是直接在线.我不知道要插入什么文件路径.
正如他强调的那样,它不是网络服务器路径,而是文件系统路径,我应该把它放在哪里.只是像这样的域名.
define('SITE_ROOT', DS. 'www.example.com');
Run Code Online (Sandbox Code Playgroud)
他不想要网络服务器路径,但文件位于网上?所以我不懂.
UPDATE
视频教程使用以下代码
defined('DS') ? null : define('DS', DIRECTORY_SEPARATOR);
defined('SITE_ROOT') ? null :
define ('SITE_ROOT', DS.'Users'.DS.'kevin'.DS.'Sites'.DS.'photo_gallery');
defined('LIB_PATH') ? null : define('LIB_PATH',SITE_ROOT.DS.'includes');
Run Code Online (Sandbox Code Playgroud)
我用过这段代码:
defined('DS') ? null : define('DS', DIRECTORY_SEPARATOR);
defined('SITE_ROOT')? null: define('SITE_ROOT', realpath(dirname(__FILE__)));
defined('LIB_PATH') ? null : define('LIB_PATH',SITE_ROOT.DS.'includes');
Run Code Online (Sandbox Code Playgroud)
我收到此错误消息
require_once(/hsphere/local/home/c263430/quoralist.com/includes/includes/config.php):无法打开流:/hsphere/local/home/c263430/quoralist.com/includes/中没有此类文件或目录第11行的initialize.php致命错误:require_once():无法打开所需的'/hsphere/local/home/c263430/quoralist.com/includes/includes/config.php'(include_path ='.:/ hsphere/shared/apache第11行/hsphere/local/home/c263430/quoralist.com/includes/initialize.php中的/ libexec/php5ext/php /')
通过experimentX使用以下3次编辑进行更新,以及以下内容
define('SITE_ROOT', DS.'hsphere'.DS.'local'.DS.'home'.DS.'c263430'.DS.'quoralist.com');
Run Code Online (Sandbox Code Playgroud)
我总是收到错误消息
警告:require_once(LIB_PATH/config.php):无法打开流:第11行/hsphere/local/home/c263430/quoralist.com/includes/initialize.php中没有此类文件或目录致命错误:require_once():在/hsphere/local/home/c263430/quoralist.com/includes/initialize.php中打开所需的'LIB_PATH/config.php'(include_path ='.:/ hsphere/shared/apache/libexec/php5ext/php /')失败在第11行
也,
San*_*kha 10
怎么样
defined('SITE_ROOT')? null: define('SITE_ROOT', realpath(dirname(__FILE__)));
echo SITE_ROOT;
Run Code Online (Sandbox Code Playgroud)
而不是define('SITE_ROOT', 'www.domain.com')你应该define('SITE_ROOT', realpath(dirname(__FILE__)).
www.domain.com是您网站的基本网址realpath(dirname(__FILE__)),而是定义它的FILE的绝对文件路径.使用此路径,您可以为您的站点设置ROOT FOLDER.
例如:你不能unlink('www.example.com\img1.jpg')删除img1
你应该这样做unlink(SITE_ROOT.DS.'img1.jpg');
类似于move_uploaded_file或任何其他目录或文件功能.即您的文件正被服务器计算机移动和删除(因为php脚本在服务器中执行),因此需要绝对文件路径.
使用此绝对路径,您可以导航到该文件夹并访问服务器上的文件.
[UPDATE]
defined('DS') ? null : define('DS', DIRECTORY_SEPARATOR);
defined('SITE_ROOT') ? null :
define ('SITE_ROOT', DS.'Users'.DS.'kevin'.DS.'Sites'.DS.'photo_gallery');
Run Code Online (Sandbox Code Playgroud)
虽然我没有自己的mac,但web-root它Users/kevin/Sites/在Mac上,而且Users/kevin/Sites/photogallery是站点根目录.
导师知道这一点,所以他这样做.但是当我们的项目在webserver上传时,我们可能不知道这一点,所以
defined('SITE_ROOT')? null: define('SITE_ROOT', realpath(dirname(__FILE__)));
Run Code Online (Sandbox Code Playgroud)
将是最合适的.
至于DS它,它只是一个CONSTANT(DIRECTORY_SEPARATOR),它被定义因为DIRECTORY_SEPARATOR写入时间太长.即
SITE_ROOT'.DIRECTORY_SEPARATOR.'Users'.DIRECTORY_SEPARATOR.'kevin'.DIRECTORY_SEPARATOR.'Sites'.DIRECTORY_SEPARATOR.'photo_gallery'
Run Code Online (Sandbox Code Playgroud)
因此,在定义SITE ROOT之前定义它
defined('DS')? null: define('DS', DIRECTORY_SEPARATOR);
defined('SITE_ROOT')? null: define('SITE_ROOT', realpath(dirname(__FILE__)));
Run Code Online (Sandbox Code Playgroud)
由于教程是在MAC DIRECTORY_SEPARATOR上完成的/.并且示例完成后localhost,导师知道他的网络服务器的绝对文件路径,所以他正在做
[错误:更新]
您收到此错误,因为定义此错误会includes/initialize.php假定您的位置一定SITE_ROOT是您所在的yourwebroot/yourproject/includes位置yourwebroot/yourproject/includes.
有两种方法,一种方法是
把initialize.php在yourwebroot/yourproject
而另一种方式是
defined('SITE_ROOT')? null: define('SITE_ROOT', realpath(dirname(__FILE__)).DS."..".DS);
Run Code Online (Sandbox Code Playgroud)
要么
defined('SITE_ROOT')? null: define('SITE_ROOT', DS.'..'.DS.realpath(dirname(__FILE__)));
Run Code Online (Sandbox Code Playgroud)
(我不确定,但其中一个应该工作)
也试试这个
defined('SITE_ROOT')? null: define('SITE_ROOT', '/../'.realpath(dirname(__FILE__)));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4883 次 |
| 最近记录: |