2011-07-21 46 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);

相關問題