Почему echo выводит только "<"?

Рейтинг: 0Ответов: 1Опубликовано: 26.07.2023

Сервер получает json-файл с четырьмя значениями:

<?php
$content = file_get_contents("file.json");
$content = json_decode($content, true);

$title = $content['title'];
$short_title = $content['short_title'];
$content = $content['content'];
$table_of_contents = $content['table_of_contents'];
?>

Первые три переменные выводятся нормально, а четвёртое – новое, добавленное – выводит только "<" при любом значении в json-файле:

<script>
    let table_of_contents = `<?= $table_of_contents; ?>`
    if (table_of_contents) { console.log(table_of_contents) } // Выводит "<"

    let title = `<?= $title; ?>`
    if (title) { console.log(title) } // Выводит что нужно
</script>

Содержимое json:

{"title":"Тайтл","short_title":"Короткий тайтл","content":"Контент","table_of_contents":"Содержание"}

Какая может быть проблема?

Ответы

▲ 1Принят

Вот почему

$content = file_get_contents("file.json");
$content = json_decode($content, true);

$title = $content['title'];
$short_title = $content['short_title'];
$content = $content['content']; // На этой строке массив $content заменяется на "Контент"
$table_of_contents = $content['table_of_contents'];

Переименуйте хотя бы так

$contentValue = $content['content'];