问题标签 [set-include-path]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - php set_include_path 让我发疯
我需要在 php 中包含一个文件,所以我这样做
和 PHP 输出:
警告:include_once(../res/proc/check_sprache.php):无法打开流:第 62 行的 /Users/user/Sites/site/res/pdf/rechnung.php 中没有此类文件或目录
警告:include_once( ): 在第 62 行的 /Users/user/Sites/site/res/pdf/rechnung.php 中打开 '../res/proc/check_sprache.php' 以包含 (include_path='.:') 失败
所以我改变了包含路径:
再试一次,但 PHP 输出:
警告:include_once(../res/proc/check_sprache.php):无法打开流:第 62 行的 /Users/user/Sites/site/res/pdf/rechnung.php 中没有此类文件或目录
警告:include_once( ): 在 /Users/user/Sites/site/res/ 中打开 '../res/proc/check_sprache.php' 以包含 (include_path='.::/Users/user/Sites/site/res/') 失败pdf/rechnung.php 在第 62 行
但如果我这样做
有用。但这不是解决方案,因为包含的文件包含更多具有相对路径的文件,因此也找不到它们。
所以要么我误解了 PHP 包含路径,要么它只是在欺骗我。
有人可以帮忙吗?
php - php require_once 包含相对于文件而不是工作目录的文件
我在相对包含文件方面遇到了一些问题。问题不在于 require_once 找不到文件,而是它可以在没有文件的地方找到文件。我已将问题简化为三个小班。
所以这是我的目录结构:
索引.php:
命令工厂.php:
我已经通过将 CommandFactory 移动到不同的目录进行了测试,从而解决了问题。但是,我不明白为什么可以包含该文件。它不应该包括相对于 CommandFactory 的 Status,它应该是相对于 index.php 的。我添加了当前的工作目录,看看出了什么问题,但我无法弄清楚。有人知道这是如何以及为什么起作用的吗?
php - PHP set_include_path 和 require_once
我的错误仅发生在我的主机服务器上,而不是在我的本地环境中:
致命错误:require_once() [function.require]: 无法打开所需的 '\Audero\Loader\AutoLoader.php' (include_path='.:/usr/share/pear:/usr/share/php:/home/httpd/ vhosts/webox-it.com/ofrom.webox-it.com/modules/Concordancier....\lib') 在 /home/httpd/vhosts/webox-it.com/ofrom.webox-it.com/modules /Concordancier/data_manager.php 在第 1670 行
这是我的代码:
文件结构:
/lib/Audero/Loader/Autoloader.php
调用文件放置:
/modules/Concordancier/data_manager.php
在我的本地环境中没有问题,php可以加载自动加载器,但在prod服务器中却没有。源文件结构与本地完全相同,相对路径看起来正确。prod 中的 php 版本是 5.3.27,所以它应该可以工作吗?
任何想法 ?
php - Yii 如何包含 ssh2 库
我是 Yii 的新手,我正在尝试在 Yii 中包含库 ssh2,我做了:
它给:
但它可以在 yii 中正常工作,我的意思是作为 htdocs 中的一个简单的 php 文件。所以我想我没有把他们包括在 Yii 中......
谢谢大家!
php - 共享主机,添加库路径(类似ZEND)
我实际上正在安装谷歌 API 库。我无法更改 php.ini,所以我正在尝试使用set_include_path()
我把我的图书馆文件夹放在/library
. 我怎样才能访问它?
我从这里使用 Zend GData 安装检查器脚本:http: //framework.zend.com/svn/framework/standard/trunk/demos/Zend/Gdata/InstallationChecker.php
它给了我那个错误
php - set_include_path 在浏览器中使用时没有效果
我正在使用set_include_path()
添加到 PHP 搜索路径,以便服务器可以找到 gs 可执行文件。当我从命令行(即“ php testpath.php
”)运行脚本时,事情按预期工作,但是当我从本地主机(Mac OSX 10.11.5)上的浏览器调用脚本时,它找不到可执行文件。该testpath.php
文件是:
我需要做些什么来让这个脚本工作,以便它可以从浏览器调用中找到 gs 可执行文件?谢谢!
php - PHP Composer 自动加载器不会在包含路径中加载文件
假设有两个项目“project_a”和“project_b”。我正在通过 set_include_path 在 project_a 的 index.php 中动态设置包含路径,以便能够使用文件夹/Users/Me/develop/project_b/controller中的 project_b 文件。
project_a 的 index.php 内容为:
composer.json 内容为:
最后在 project_b 中 MyController.php 的内容是:
但是当我调用 project_a 的 index.php 时,我只得到这个错误:
我错过了什么?
在此先感谢大卫。
PS:是的,出于特定原因,我必须动态设置包含路径。
perl - perl @INC 搜索路径中缺少 site/perl 目录
我正在为我的同事和我开发一堆 Perl 脚本。为了简化分发,Perl 本身驻留在网络路径上,并使用此标头直接从那里使用:
这工作得很好(现在仍然可以!),但一位同事需要一个独立版本,所以我们将 Perl 的完整网络安装复制到本地硬盘。将标头更改为使用本地位置后,我们会收到以下消息:
现在我一直认为@INC 被编译成Perl。至少,它不应该通过简单地将 Perl 复制到另一个位置来改变。
本地启动时 Perl -V 输出略有不同。
这是我从网络开始时得到的:
这是从本地驱动器执行时的输出:
site/lib 部分不见了!任何想法,任何人?
php - 如果文件存在,PHP set_include_path 替换模板文件
我已经使用 Oscommerce 2.3.4 实现了一个简单的模板系统。这样我就可以经营多家商店,并有可能在“网站”或“模板”的基础上改变商店的内容或外观。
核心 OSC 文件(模块文件、类等)仍位于应用根目录之外的目录中,但模板、语言文件和样式表位于“模板”和“站点”目录中。每个“模板”或“站点”目录结构都与 OSC 应用程序的标准结构相同。如果站点/模板文件夹中存在文件,则将使用该文件。
所有默认模板和语言文件都有一个默认模板目录。选择使用哪个文件的优先级如下:
- 查看是否有特定于站点的文件(sites/***/...)。
- 否则,查看是否有特定于模板的文件。(模板/***/...)
- 否则,使用默认模板目录中的文件。(模板/默认/...)
我正在考虑使用 set_include_path 函数列出上面提到的每个目录,以利用 php.net 上记录的 include_path 的行为:
在查找要包含的文件时,PHP 会分别考虑包含路径中的每个条目。它将检查第一个路径,如果找不到,则检查下一个路径,直到找到包含的文件或返回警告或错误。
这似乎对我的情况来说几乎是理想的,但是我找不到这是否被认为是“好”的做法。
如果使用它有任何陷阱,例如性能下降,我很感兴趣。考虑到很多包含现在将在 3 个目录中查找,然后最终在第 4 个位置找到默认模板。(尽管这比使用if(file_exists())
多次作为替代方法更糟糕。)
此外,有必要在应用程序顶部设置这些包含路径,因为路径使用当前站点的变量和来自应用程序的模板。所以我不能在 php.ini 中设置包含路径
非常感谢任何帮助或建议