En utilisant php 7 sur mac os x, je ne peux pas créer de dossier avec php mkdir() si le nom du dossier contient une barre oblique, par ex. Test 24/04/2015.

Voici mon code PHP:

$FolderPath = readline("Insert Folder Path "); // I enter /Users/me/Test 24/04/2015
echo "You have entered: " . $FolderPath;
echo "\n";
echo "\n";

$FolderPathResized = $FolderPath . "/Resized";

if (file_exists($FolderPathResized)) {
    echo "The folder $FolderPathResized exists";
    echo "\n";
}else {
    mkdir($FolderPathResized);
}

L'erreur que j'obtiens est:

mkdir(): No such file or directory in

Comment puis-je utiliser mkdir() dans ce cas ? Mes dossiers auront toujours des dates séparées par des barres obliques dans le nom du dossier.

php
0
Alex Susanu 27 juin 2016 à 08:46

2 réponses

Meilleure réponse

Vous ne pouvez pas créer de noms de répertoire contenant un /. Utilisez un _ serait préférable pour séparer la date.

Cela peut être fait en utilisant la fonction str_replace() pour remplacer tous les / par _ dans votre date.

L'erreur est affichée car elle capture le premier / et tente de l'écrire dans un tel répertoire et il n'existe pas. Vous devrez l'entourer de guillemets pour qu'il soit lu en premier lieu.

2
Ctc 27 juin 2016 à 08:51

Vous avez probablement trouvé la réponse puisque cette question a 4 ans, mais si vous voulez créer un dossier avec une barre oblique dans le nom, vous pouvez faire comme ceci :

mkdir My\:Folder

Il va créer un dossier avec le nom = "Mon/Dossier"

J'espère que cela aide quelqu'un :)

0
Vinícius Assis Neves 19 juin 2020 à 22:40