как проанализировать закодированный массив в php при наличии косых черт

#javascript #php #json

#javascript #php #json

Вопрос:

Это массив, который мне нужно закодировать с помощью PHP json_encode :

 [["url" => "uploads/123.png"] , ["url" => "uploads/456.jpg"]]
 

Результат:

 [{"url" : "uploads//123.png"} , {"url" : "uploads//456.jpg"}]
 

Я сохраняю это в теге HTML и хочу проанализировать его с помощью JavaScript, но он возвращает ошибку. Как я могу решить эту проблему?

Комментарии:

1. json_encode ?

2. Вам нужно экранировать кавычки, если вы вставляете их в виде строки в свой файл javascript.

3. @tkausl да, чтобы сохранить этот массив в теге HTML, я должен его закодировать. json_encode()

4. Как вы сохраняете его в HTML-теге? Покажите код PHP и код JS, который пытается его разобрать.

5. Когда я тестировал, я получил / , но, кажется, я помню, что в прошлом это делало что-то странное // .

Ответ №1:

По какой-то исторической причине или другой, которую я не помню, json_encode экранирует / ( / либо удваивает их // ). Существует флаг для его отключения JSON_UNESCAPED_SLASHES :

 $json = json_encode([["url" => "uploads/123.png"], ["url" => "uploads/456.jpg"]],
                    JSON_UNESCAPED_SLASHES);
 

Выдает:

 [{"url":"uploads/123.png"},{"url":"uploads/456.jpg"}]