¿Hay una función PHP equivalente a la Python os.path.normpath()
?
¿O cómo puedo obtener la misma funcionalidad en PHP?¿Existe una función equivalente de PHP para Python os.path.normpath()?
6
A
Respuesta
6
Aquí es mi 1: 1 reescritura del método Normpath() desde posixpath.py de Python en PHP:
function normpath($path)
{
if (empty($path))
return '.';
if (strpos($path, '/') === 0)
$initial_slashes = true;
else
$initial_slashes = false;
if (
($initial_slashes) &&
(strpos($path, '//') === 0) &&
(strpos($path, '///') === false)
)
$initial_slashes = 2;
$initial_slashes = (int) $initial_slashes;
$comps = explode('/', $path);
$new_comps = array();
foreach ($comps as $comp)
{
if (in_array($comp, array('', '.')))
continue;
if (
($comp != '..') ||
(!$initial_slashes && !$new_comps) ||
($new_comps && (end($new_comps) == '..'))
)
array_push($new_comps, $comp);
elseif ($new_comps)
array_pop($new_comps);
}
$comps = $new_comps;
$path = implode('/', $comps);
if ($initial_slashes)
$path = str_repeat('/', $initial_slashes) . $path;
if ($path)
return $path;
else
return '.';
}
Esto funcionará exactamente lo mismo que os.path.normpath() en Python
2
Sí, el comando realpath
devolverá una ruta normalizada. Es similar a una versión combinada de Python os.path.normpath
y os.path.realpath
.
Sin embargo, también resolverá los enlaces simbólicos. No estoy seguro de lo que harías si no quisieras ese comportamiento.
Cuestiones relacionadas
- 1. equivalente bash de os.path.normpath de Python?
- 2. PHP equivalente para un decorador de python?
- 3. ¿Hay un Python equivalente a la función PHP htmlspecialchars()?
- 4. PHP list() equivalente en Python
- 5. ¿Existe una función similar a setTimeout() (JavaScript) para PHP?
- 6. Función equivalente para file_get_contents()?
- 7. ¿Existe un ColdFusion equivalente a PHP para include_once?
- 8. ¿Existe un equivalente para var_dump (PHP) en Javascript?
- 9. Python equivalente a "php -s"
- 10. ¿Existe un Python equivalente al comando 'which'
- 11. equivalente Python para IFNULL de MySQL
- 12. PHP - ¿Equivalente para Python PDB (Debugger) en PHP?
- 13. ¿Esta función existe en PHP?
- 14. ¿Existe un javascript equivalente para descomprimir secuencias como en python?
- 15. Python equivalente a la constante mágica __DIR__ de PHP?
- 16. ¿Existe una función de biblioteca en Python para convertir una función de generador en una función que devuelve una lista?
- 17. Python equivalente a memory_get_usage() de PHP
- 18. Python equivalente de la función cksum UNIX
- 19. ¿Existe un equivalente de la función de rango de Python en MATLAB?
- 20. Equivalente a jQuery o JavaScript de la función PHP strpos para buscar cadena en una página
- 21. ¿Existe un equivalente en Scala a la función de mapa más general de Python?
- 22. Python equivalente a la función LINQ All?
- 23. Python es equivalente a strip_tags de PHP?
- 24. ¿Existe un equivalente de mysql_real_escape_string() de PHP para DBI de Perl?
- 25. ¿Existe un equivalente de print_r de PHP en Ruby/Rails?
- 26. MySQL IFNULL equivalente para php
- 27. ¿Existe el equivalente de un conjunto de Java en php?
- 28. ¿Existe una función equivalente a la función de Oracle NVL en Mysql?
- 29. JavaScript equivalente para PHP preg_replace
- 30. Passport.js equivalente para Python?
PHP's realpath sería más como el equivalente de os.path.abspath() o os.path.realpath() – VolkerK
@Gordon: el realpath de PHP es más como una versión combinada de os.path.normpath y os.path de Python. realpath. – Powerlord
Creo que esto es lo más cercano que se puede obtener con la funcionalidad 'os.path.normpath()'. O esto o no hay (al menos) función incorporada para esto. Depende de lo que realmente necesite el OP ... –