Json encode проблема с пробелом

135
10 ноября 2018, 08:40

Почему, если обернуть массив в json_encode:

<button id="button"
        data-legend = {{ json_encode(['In time', 'Half time', 'Overtime'])}}
>Button</button>

В итоге получается:

data-legend="[&quot;In" time&quot;,&quot;half="" time&quot;,&quot;overtime&quot;]=""

А хотелось бы получить массив по такому типу:

data-production="["odit","porro","necessitatibus","ut","omnis","perspiciatis"]"
Answer 1

Дело не в пробелах, у вас в атрибутах не могут быть кавычки, т.е. ваш пример:

data-production="["odit","porro","necessitatibus","ut","omnis","perspiciatis"]"

это просто невалидный HTML. Вероятно отсюда всё ваши проблемы. Покопайтесь в настройках json_encode чтобы он, например, корректно вам кавычки эскейпил в &quot; у вашего JSON. Ну или по обстоятельствам, просто не совсем понятно что именно вы хотите получить в итоге.

Answer 2

Если речь идет о шаблонизаторе blade, то вам нужно использовать нотацию {!! !!}

<button id="button"
        data-legend = "{!! json_encode(['In time', 'Half time', 'Overtime'])!!}"
>Button</button>
Answer 3

Проблема была не с пробелом, а в правильности передачи параметров в json_encode, т.е. вместо json_encode(['In time', 'Half time', 'Overtime']), в данном случае необходимо использовать json_encode(array('In time', 'Half time', 'Overtime')).

READ ALSO
FPDF - наложение строк

FPDF - наложение строк

Идет наложение текста друг на друга, причем хаотичноНе понятно по каким причинам происходит наложение

172
Laravel Vue хорошая ли практика

Laravel Vue хорошая ли практика

Использую в своих разработках Laravel + vue и у меня возник один вопрос: Хорошая ли эта практика передавать все возможные данные (например всю информацию...

152
создание обёртки для выбранных тегов

создание обёртки для выбранных тегов

есть html текст в таком формате:

171