【问题标题】:Help with PHP and filepaths帮助 PHP 和文件路径
【发布时间】:2011-06-07 01:25:39
【问题描述】:

我现在正在使用 Windows,但我需要我的脚本才能在 Windows 或 linux 上运行。我正在开发一个允许将视频上传到 youtube 的项目,youtube 库需要使用 Zend 框架(不幸的是)所以我真的想让它工作,但没有运气。

所以我的页面说

Warning: require_once(Zend/Loader.php) [function.require-once]: failed to open stream: No 
such file or directory in 
E:\Server\htdocs\clients\youtube2\demos\Zend\Gdata\YouTubeVideoApp\operations.php on line 37

我的 Zend 框架位于

E:\Server\htdocs\frameworks\Zend

然后我尝试设置包含路径,以便脚本可以访问 Zend,这就是我的麻烦开始的地方。我试着用这个……

$path = 'E:/Server/htdocs/frameworks/Zend/';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);

但是我仍然收到您在上面看到的错误,现在您可以看到上面的脚本路径和 Zend 的路径,有人可以告诉我如何设置包含路径以正常工作吗?感谢您的帮助


到目前为止,我尝试了一些建议,但没有成功。这是我更新的代码和结果

$path = 'E:\Server\htdocs\frameworks';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
echo get_include_path();

给这个...

E:\Server\php\PEAR;E:\Server\htdocs\frameworks

看来我添加了zend的包含路径,但它仍然说找不到它


最终更新!

它正在工作,只是我设置包含路径的位置没有包含到所有文件中,有没有办法设置包含路径并使其在全球范围内可用?

【问题讨论】:

  • Zend/Loader.php 文件位于E:\Server\htdocs\frameworks\Zend\Zend\Loader.php,有两个Zend 目录?
  • Linux 不使用驱动器号 E:
  • @Radu 不只是 1 个 zend 目录 E:\Server\htdocs\frameworks\Zend\Loader.php
  • @jasondavis,那么您的 $path 应该是 E:/Server/htdocs/frameworks,而不是 E:/Server/htdocs/frameworks/Zend
  • @Radu,我刚试过,但没有任何影响

标签: php zend-framework include-path


【解决方案1】:

如果要更改php.ini 中的包含路径,只需更改include_path。查看this tutorial,了解更改包含路径的多种方法。

【讨论】:

    【解决方案2】:
    E:\Server\htdocs\frameworks\Zend
    

    对比

    $path = 'E:/Server/htdocs/frameworks/Zend/';
    

    可能会对您的系统产生影响?尝试使用 \ 而不是 /

    【讨论】:

    • 这可能是你试图包含E:/Server/htdocs/frameworks/Zend/Zend/Loader.php,因为这就是你的代码所做的
    • 它正在工作,有没有办法设置包含路径并为所有文件设置它