Ho bisogno di una funzione, nativa o creata dall'utente, che controlli se una stringa è un nome di directory valido. Ho dato un'occhiata alla documentazione di PHP e posso trovare solo la funzione is_dir
che controlla se si tratta di una directory esistente o meno e non un nome valido per una directory.Controllare una stringa per un nome di directory valido
risposta
Questo dovrebbe funzionare per voi.
Vedi regex for validating folder name & file name
if (strpbrk($filename, "\\/?%*:|\"<>") === FALSE) {
/* $filename is legal; doesn't contain illegal character. */
}
else {
/* $filename contains at least one illegal character. */
}
Questo potrebbe funzionare. È possibile modificare il secondo e il terzo argomento in base alle proprie esigenze.
if (!mkdir($directory, 0700, true)) {
die('Error: Illegal directory.');
}
Si noti che questo creerà la directory se il nome della directory è valido. Tuttavia, a mio modesto parere (e senza conoscere il tuo particolare caso d'uso), questo è il modo preferito nella maggior parte delle lingue per gestire la verifica della validità del nome della directory. Basta provare a creare la directory, e se fallisce, allora digli che non è riuscita.
I vantaggi di questo è che mantiene agnostico il proprio file system di codice ed è il metodo meno soggetto a errori per convalidare e creare una directory, poiché nessun altro processo o thread sarà in grado di creare una directory tra quando si convalida la directory e quando la crei.
Lo svantaggio è che questo metodo presuppone che si desideri creare immediatamente la directory.
Naturalmente, ci sono diverse ragioni che mkdir()
potrebbe fallire (ad esempio, autorizzazioni insufficienti, guasti hardware, non valida nome di directory, ecc), quindi si consiglia di visualizzare diversi messaggi di errore per l'utente in base all'errore. Sfortunatamente, PHP non ha una gestione delle eccezioni altrettanto solida di altri linguaggi, ma se vuoi seguire questa strada, dovresti essere in grado di utilizzare un approccio come questo in answer per rilevare i vari avvisi che possono essere generati da mkdir()
.
Forse dovresti provare questo: 'mkdir ('dirname/test /../ temp', 0700, vero);' Potrebbe essere utile filtrare il nome '$ directory' per alcune cose come @GregoryBurns suggerisce nella sua risposta ... – Wilt
- 1. nome di attività non è un nome di classe valido
- 2. come posso convertire una stringa in un nome di variabile valido in python?
- 3. Eclipse "nome di directory di risorse non valido"
- 4. valido Directory Name - Il tuo applicazione contiene un nome di directory che è già riservato
- 5. Controllare se una stringa contiene una stringa
- 6. Controllare se un oggetto JavaScript ha un nome di proprietà che inizia con una stringa specifica
- 7. Il modo più semplice per verificare se una stringa arbitraria è un nome file valido
- 8. Assicurati che la stringa sia un nome ID CSS valido
- 9. Come verificare se una stringa è un URL HTTP valido?
- 10. Metodo per controllare l'elenco di array contenente una stringa specifica
- 11. C# controllare se una directory è nascosta?
- 12. Conversione di una stringa in un oggetto JSON valido
- 13. Ottenere un nome di directory da un nome file
- 14. è una stringa di query con un/in esso valido?
- 15. Perché "è" un nome di dominio valido?
- 16. chiama una funzione clojurescript per nome stringa
- 17. Convert DateTime.Now a un nome di file valido di Windows
- 18. Messaggio Pylint: nome costante non valido (nome non valido)
- 19. Compilare un TreeView con una directory di stringa
- 20. Ottieni la directory di un nome file in Javascript
- 21. NumberFormatException sul numero valido Stringa
- 22. Controllare se la directory è un punto di montaggio?
- 23. Nome colonna valido Cassandra
- 24. nome profilo non valido
- 25. Nome directory risorse non valido per i valori con codice paese
- 26. copiare tutti i file in una directory con una particolare stringa nel nome del file nella directory diversa in Bash
- 27. Come eseguire il checkout di un ramo remoto con lo stesso nome di una directory?
- 28. Come controllare se len è valido
- 29. Conversione della stringa di input dell'utente in un nome file valido
- 30. Nome locale valido
Definire "nome directory valido" Ogni sistema operativo ha le proprie restrizioni. Definisci cosa è legale e non, e quindi convalidare contro quello. –
una directory che non esiste sarebbe una directory non valida, no? –
È possibile cercare una directory 'generale' espressione regolare. – Darkwater