変数を使用してmkdir()関数を介してディレクトリを作成する際に問題が発生しているようです。変数はURLから解析されています。以下の私のコーディングを参照してください。
$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()を使用してフォルダーパスを定義しています。
define("DESTINATION_FOLDER", "mydir/".$dirID."/");
そして、ディレクトリが存在しない場合にディレクトリを作成するように指示するifステートメントは次のとおりです。
if (!@file_exists(DESTINATION_FOLDER)) {
mkdir(DESTINATION_FOLDER);
}
非常に簡単に聞こえますが、何らかの理由で変数$ dirIDが読み取られず、代わりにファイルがmydirディレクトリにアップロードされます。本当に奇妙なのは、変数を$ dirID = "28"のようにハードコーディングすると、それが機能し、ファイルがmydir / 28/file.jpgのようにアップロードされることです。私はこれまで何度もこのメソッドを使用して変数を渡しましたが、mkdir関数で使用する変数を渡すことはありませんでした。誰かが何が起こっているのか知っていますか?
よろしくお願いします。