这让我很头疼。我已经阅读了多个问题,但没有人帮助过我。
所以我需要包含来自不同文件夹的php文件。这是我的结构的样子。我正在使用WAMP。
/C
/wamp
/www
/project1
/main
/backend
-class.common.php
-inc.config.php
/providers
/google
-google.functions.php
从上面的结构可以看出,class.common.php位于文件夹后端(位于文件夹main下)。
现在,我尝试使用此代码在 google.functions.php 中加入 class.common.php : -
include '../../class.common.php';
但是,这似乎不起作用。我甚至试过使用__DIR__
常数。没运气。什么是实现我的结果最有力的方法?
PHP错误日志。
[15-Jun-2016 22:16:25 Europe/Paris] PHP Warning: include(../../_inc_config.php): failed to open stream: No such file or directory in C:\wamp\www\yele\main\backend\api_providers\rech\api_functions.php on line 3
[15-Jun-2016 22:16:25 Europe/Paris] PHP Stack trace:
[15-Jun-2016 22:16:25 Europe/Paris] PHP 1. {main}() C:\wamp\www\yele\main\backend\ajax.php:0
[15-Jun-2016 22:16:25 Europe/Paris] PHP 2. include() C:\wamp\www\yele\main\backend\ajax.php:2
[15-Jun-2016 22:16:25 Europe/Paris] PHP 3. include() C:\wamp\www\yele\main\backend\class.apibase.php:3
[15-Jun-2016 22:16:25 Europe/Paris] PHP 4. include() C:\wamp\www\yele\main\backend\api_providers\rech\base_lib.php:2
[15-Jun-2016 22:16:25 Europe/Paris] PHP Warning: include(): Failed opening '../../_inc_config.php' for inclusion (include_path='.;C:\php\pear') in C:\wamp\www\yele\main\backend\api_providers\rech\api_functions.php on line 3
[15-Jun-2016 22:16:25 Europe/Paris] PHP Stack trace:
[15-Jun-2016 22:16:25 Europe/Paris] PHP 1. {main}() C:\wamp\www\yele\main\backend\ajax.php:0
[15-Jun-2016 22:16:25 Europe/Paris] PHP 2. include() C:\wamp\www\yele\main\backend\ajax.php:2
[15-Jun-2016 22:16:25 Europe/Paris] PHP 3. include() C:\wamp\www\yele\main\backend\class.apibase.php:3
[15-Jun-2016 22:16:25 Europe/Paris] PHP 4. include() C:\wamp\www\yele\main\backend\api_providers\rech\base_lib.php:2
[15-Jun-2016 22:16:25 Europe/Paris] PHP Fatal error: Cannot redeclare class common in C:\wamp\www\yele\main\backend\class.common.php on line 5
[15-Jun-2016 22:16:25 Europe/Paris] PHP Stack trace:
[15-Jun-2016 22:16:25 Europe/Paris] PHP 1. {main}() C:\wamp\www\yele\main\backend\ajax.php:0
[15-Jun-2016 22:16:25 Europe/Paris] PHP 2. include() C:\wamp\www\yele\main\backend\ajax.php:3
答案 0 :(得分:1)
我不确定我是否正确阅读了你的图表,但考虑到以下因素:
如果def pingGetterLoop():
while(1):
pingGetter()
def mainLoop():
root.mainloop()
print("thread two")
threadTwo = Thread(target = mainLoop())
print("thread one")
threadOne = Thread(target = pingGetterLoop())
threadOne.start()
threadTwo.start()
的完整路径是
google.functions.php
和C:/wamp/www/project1/main/backend/providers/google/google.functions.php
的完整路径是
class.common.php
要将该文件包含在相对位置,那么C:/wamp/www/project1/main/backend/class.common.php
应该可以正常工作
__DIR__
从错误日志的外观来看,您有几个问题。
<?php
include_once __DIR__.'/../../class.common.php';
中,它调用路径相对包含C:\wamp\www\yele\main\backend\api_providers\rech\api_functions.php
,该路径根据包含脚本的文件而变化。所以这对于供应商来说很奇怪,但您可以尝试将该行更改为include(../../_inc_config.php)
以强制它包含相对于实际包含文件的内容,这恰好是我对您的问题的原始答案。include(__DIR__.'/../../_inc_config.php')
课程时出现致命错误,因此请使用common
或include_once
答案 1 :(得分:0)
include realpath('/../../class.common.php');