StaDi
@StaDi
Курьер в it отделе

Как отучить json_encode в php экранировать обратный слэш «\»?

Всем привет!
Ситуация, есть многомерный массив php в нём есть регулярки (в строковом типе), всё это передаётся в javascript по средствам json.
Но php в строке находит обратные слеши и экранирует их и в итоге получаем два обратных слеша :(

Код, на поиграться:
<?php $array = [
    ['regExp' => '^[\+]{1}[7]{1}[\d]{10}$'],
    ['regExp' => '^\+\d{7,15}$'],
    ['regExp' => '([45]{1}[\d]{15}|[6]{1}[\d]{17})$'],
]; ?>

<script> var test = JSON.parse('<?= json_encode($array) ?>'); 
console.log(test); </script>


Спасибо!
  • Вопрос задан
  • 10020 просмотров
Пригласить эксперта
Ответы на вопрос 3
@lyeskin
json_encode($str, JSON_UNESCAPED_SLASHES);

Как тут говорится - "в гугле забанили?". stackoverflow.com/questions/10210338/json-encode-e...
Ответ написан
kirill89
@kirill89
Не надо вешать JSON.parse

var test = <?= json_encode($array) ?>;
console.log(test);
Ответ написан
StaDi
@StaDi Автор вопроса
Курьер в it отделе
серверный костыль такой
$test = str_replace('\\\\', '\\', json_encode($test));
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы