我似乎遇到了使用变量通过mkdir()函数创建目录的问题。该变量正在从URL中解析。见我下面的编码:PHP变量在mkdir目录路径中消失
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
$pageURL;
$url = $pageURL;
$parse = parse_url($url);
$dirID = $parse['query'];
我使用的定义()来因为路径是整个代码多次使用定义的文件夹路径:
define("DESTINATION_FOLDER", "mydir/".$dirID."/");
这里是if语句告诉它创建目录,如果它不存在:
if ([email protected]_exists(DESTINATION_FOLDER)) {
mkdir(DESTINATION_FOLDER);
}
听起来很简单,但由于某些原因变量$ DIRID没有得到读取和文件,而不是上传到mydir目录。真奇怪的是,如果我将变量硬编码为$ dirID =“28”之类的东西,它就会起作用,文件会像mydir/28/file.jpg一样上传。我曾经使用过这种方法多次传递变量,但从未传递要在mkdir函数中使用的变量。有谁知道可能会发生什么?
非常感谢您提供任何帮助。
而不是'$ dirID = $ parse ['query'];',你有没有试过'$ dirID = $ _GET ['query'];'? – Nadh
是的,我忘了提及我已经尝试了GET和POST方法。它似乎仍然消失。 –
我看不到任何地方你的代码中'$ pageURL'被分配了任何看起来像查询的东西,所以你为什么希望通过'parse_url()'找到一个? – Phil