Tengo una tabla mySqli con rutas de imagen como:

assets/images/profile_pics/00fa5fa61df8a9e22e3444c

Al leerlo con PHP así:

<?php

require 'config/config.php';

$st=$con->prepare("SELECT * FROM products");
$st->execute();
$rs=$st->get_result();
$arr=array();
while($row=$rs->fetch_assoc()) {
    array_push($arr, $row);
}
echo json_encode($arr);

?>

El camino se convierte en:

assets\/images\/2_pics\/00fa5fa61df8a9e22e3444c285bed8d38n.jpeg

Cada / se convierte en /

Intenté algunas cosas como:

$row['imageUrl'] = urldecode($row['imageUrl']);
$row['imageUrl'] = str_replace('\/', '/',$row['imageUrl']);

Pero parece que / no se puede encontrar en la cadena por alguna razón. ¿Qué puedo hacer para mantener la ruta original sin agregar barras diagonales adicionales?

php
0
sir-haver 7 feb. 2020 a las 09:41

2 respuestas

La mejor respuesta

Si necesita codificar esa matriz en JSON, pero no desea las barras inclinadas, debe pasar el indicador JSON_UNESCAPED_SLASHES como segundo parámetro a json_encode:

echo json_encode($arr, JSON_UNESCAPED_SLASHES);
1
Bartosz Zasada 7 feb. 2020 a las 06:55
 $path = 'assets\/images\/2_pics\/00fa5fa61df8a9e22e3444c285bed8d38n.jpeg';

$ original_path = stripslashes ("assets / images / 2_pics / 00fa5fa61df8a9e22e3444c285bed8d38n.jpeg");

Ahora su $ original_path será como su ruta original que es ->

assets/images/2_pics/00fa5fa61df8a9e22e3444c285bed8d38n.jpeg
0
Rupesh Tiwari 7 feb. 2020 a las 06:51