我似乎遇到了使用變量通過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