我有一个从其本地目录(在 wamp/www/ 中)读取文件的 Web 应用程序。这个文件需要多个用户访问,所以我使用 Dropbox 同步和共享它。现在,我可以在诸如 fwrite 之类的 php 命令中使用快捷方式,以使代码并非严格适用于仅一台计算机吗?
例如,我不能将其编码为 fwrite("C:\Users\name\My Documents\"),因为它非常特定于一个用户并且很长。我想知道是否有可以使用的速记,例如 %appdata% 或 %programfiles%?
尝试使用
$_SERVER['HOMEDRIVE'] and $_SERVER['HOMEPATH']
分别用于用户文件夹的驱动器和路径
print_r($_SERVER)
将显示所有环境变量。在那里你可以看到选择哪一个。
$fp = fopen("{$_ENV['USERPROFILE']}\My Documents\somefile.txt", 'wb');
请注意,这仅在有限的情况下有效。您可以改用此内部函数:
#include<Shlobj.h>
PHP_FUNCTION(win_get_desktop_folder)
{
char szPath[MAX_PATH];
if (zend_parse_parameters_none() == FAILURE)
RETURN_NULL();
if (SUCCEEDED(SHGetSpecialFolderPathA(NULL, szPath,
CSIDL_MYDOCUMENTS, FALSE))) {
RETURN_STRING(szPath, 1);
} else {
RETURN_FALSE;
}
}