0

私はウェブ全体を検索しましたが、これに対する正しい答えが得られなかったので、質問は - それは可能ですか?

次のコードを使用しています。

$file = $_POST['file_path'];
$content = $_POST['file_content'];
//get vars from post

$path = explode("/",$file);
$path_start = $path[0]."/".$path[1];
//define path_start

$i = 1;
while ($file != $path_start) {
if (!file_exists($path_start)) {
    mkdir($path_start,0777); 
}//end if
$i++;
$path_start = $path_start."/".$path[$i]; 
} //end while

if (isset($file) && isset($content)) {
    if (file_exists($file)) {
    unlink($file);
    } // file does not exist ... not anymore anyways
    $fp = fopen($file, 'w+');
    fwrite($fp,$content);
    fclose($fp);
    echo "The path is ".$file;
    } else {
    echo "Error!";
}

つまり、$fileには、

.\comment\Folderč\Folderž\Folder\File22.txt ような名前を含むフル パスが含まれている

ということです名前。他のすべてのファイルが既に設定されている変数に依存しているという理由だけで、文字置換機能を使用することはできません(そしてそれは多くのファイルです)。 特殊文字を含むフォルダを作成する mkdirモード はありますか? フィードバックありがとう



4

1 に答える 1

2

utf8-encode()のように使用してみてください。

$file = utf8_encode($_POST['file_path']); // use utf8-encode here
$content = $_POST['file_content'];
//get vars from post

$path = explode("/",$file);
$path_start = utf8_encode($path[0]."/".$path[1]); // use utf8-encode here
//define path_start

$i = 1;
while ($file != $path_start) {
    if (!file_exists($path_start)) {
        mkdir($path_start,0777); 
    }//end if
    $i++;
    $path_start = utf8_encode($path_start."/".$path[$i]); // use utf8-encode here
} //end while

// your remaining code here
于 2013-10-23T09:41:42.750 に答える