[ Foro de PHP ]

Eliminar dobles caracteres como separadores de directorios en php

13-Jun-2022 17:23
Invitado (tecnoSpain)
0 Respuestas

Estoy eliminando varios errores de una página web que usa javascript y php.

El servidor, sobre el que se ejecutan los php, es una máquina con Linux Debian.

Durante las pruebas veo que en uno de los ficheros php se establece el valor de la siguientes variables:

$this->$m_BasePath = "/etc/myfolder";
$a_Subfolder = "my_device";
$this->$FullConfigFilePath = "$this->$m_BasePath"."/"."$a_Subfolder"."/myfile.xml";

He añadido código en el fichero php que haga que se escriba el valor de estas variables en un fichero de texto:

$fp = fopen('php_debug.txt', 'a');
$date = (new DateTime('NOW'))->format('y-m-d H:i:s');
fwrite($fp, $date." this->m_BasePath = ".json_encode($this->$m_BasePath).PHP_EOL);
fwrite($fp, $date." a_Subfolder = ".json_encode($a_Subfolder).PHP_EOL);
fwrite($fp, $date." this->FullConfigFilePath = ".json_encode($this->$FullConfigFilePath).PHP_EOL);
fclose($fp);

Lo que muestra el fichero es:

this->m_BasePath = \/etc\/myfolder
a_Subfolder = my_device;
this->FullConfigFilePath = \/etc\/myfolder\/my_device\/myfile.xml

Lo que esperaría que se mostrase es:

this->m_BasePath = /etc/myfolder
a_Subfolder = my_device;
this->FullConfigFilePath = /etc/myfolder/my_device/myfile.xml

Buscando en foros de internet he probado a utilizar DIRECTORY_SEPARATOR cuando se asigna valor a estas variables:

$this->$m_BasePath = DIRECTORY_SEPARATOR."etc".DIRECTORY_SEPARATOR."myfolder";
$a_Subfolder = "my_device";
$this->$FullConfigFilePath = "$this->$m_BasePath".DIRECTORY_SEPARATOR."$a_Subfolder".DIRECTORY_SEPARATOR."myfile.xml";

Pero se muestran los mismos valores que antes.

¿Cómo podría solucionar esto de forma que se use el separador "/" y no "\/"?




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)