2011-07-21 21 views
2

一些PHP代码运行良好。然而,当我将代码移植到Drupal的模块,该$fp = fopen('language/unicode-big5.tab', 'r');不能按预期,给予警告:fopen在正常的PHP中工作,但不在Drupal中

warning: fopen(language/unicode-big5.tab) [function.fopen]: failed to open stream: No such file or directory in /Users/me/Documents/Html/drupal/sites/all/modules/test_module/language.inc.php on line 197. 

我试图把所需的文件和文件夹sites/default/files

$fp = fopen(file_directory_path().'/language/unicode-big5.tab', 'r'); 

返回相同的警告。

我该如何解决?

+1

请检查您当前所在的文件系统做一个 的var_dump(_ _文件_ _); //删除空格 –

+1

我最终使用'$ fp = fopen(dirname(__ FILE __)。'/ language/big5-unicode.tab','r');' – ohho

回答

2

这将工作得很好。

但是,这条消息仅仅是说明你的路径是错误的,你是否尝试过简单地查看它试图打开的路径?

只需执行以下操作,并相应地更正路径。

echo realpath(file_directory_path() . '/language/unicode-big5.tab'); 

如果路径正确的,那么你需要检查的权限,是否用户具有访问该文件呢?尝试一个chmod 777,看看是否可以帮助解决这个问题,如果确实如此,请删除chmod 777并相应地修复它(用户/组权限)。

+0

感谢您提供'realpath'提示。路径是:'$ fp = fopen('sites/all/modules/test_module/language/unicode-big5.tab','r');' – ohho

+0

@ohho你是否正常工作? –

+0

yes,now:'dirname(__ FILE __)。'/ language/big5-unicode.tab'' – ohho

0

您的Drupal是否在您所指的文件不同的所有者下运行?文件是否可读? (使用chmod + R档)

+0

它可读。这是一个路径问题。 – ohho

2

其更好地使用模块路径以下drupal的标准,并添加到该文件的路径:

drupal_get_path('module', $module_name);

相关问题