как удалить/исключить html-кодирование из json-файла при экспорте?

Вопрос или проблема

Я создал файл с использованием json и экспортировал его. Он создает HTML-теги. На самом деле, я не хочу, чтобы эта HTML-часть была в файле. Ниже я делюсь структурой моего текущего файла: стандартные HTML-теги, такие как head, title и ниже json вместе с ним.

<html xmlns="http://www.w3.org/1999/xhtml" class="wp-toolbar"  lang="en-US">
<!--<![en-->
[{
    "ID" : 13,
    "post_author" : "1",
    "post_date" : "2015-10-30 07:09:16",
    "post_date_gmt" : "2015-10-30 07:09:16",
    "post_content" : "Test",
    "post_title" : "Test",
    "post_excerpt" : "",
    "post_status" : "publish",
    "comment_status" : "closed",
    "ping_status" : "closed",
    "post_password" : "",
    "post_name" : "test",
    "to_ping" : "",
    "pinged" : "",
    "post_modified" : "2015-10-30 07:09:16",
    "post_modified_gmt" : "2015-10-30 07:09:16",
    "post_content_filtered" : "",
    "post_parent" : 0,
    "guid" : "url/?post_type=wpcp_pointer&#038;p=9",
    "menu_order" : 0,
    "post_type" : "wpcp_pointer",
    "post_mime_type" : "",
    "comment_count" : "0",
    "filter" : "raw"
}
]

Но что я хочу, так это:

[{
    "ID" : 13,
    "post_author" : "1",
    "post_date" : "2015-10-30 07:09:16",
    "post_date_gmt" : "2015-10-30 07:09:16",
    "post_content" : "Test",
    "post_title" : "Test",
    "post_excerpt" : "",
    "post_status" : "publish",
    "comment_status" : "closed",
    "ping_status" : "closed",
    "post_password" : "",
    "post_name" : "test",
    "to_ping" : "",
    "pinged" : "",
    "post_modified" : "2015-10-30 07:09:16",
    "post_modified_gmt" : "2015-10-30 07:09:16",
    "post_content_filtered" : "",
    "post_parent" : 0,
    "guid" : "url/?post_type=wpcp_pointer&#038;p=9",
    "menu_order" : 0,
    "post_type" : "wpcp_pointer",
    "post_mime_type" : "",
    "comment_count" : "0",
    "filter" : "raw"
}
]

Только массив JSON должен быть в экспортируемом файле. Пожалуйста, помогите, как я могу удалить эту HTML-часть из JSON файла. Ниже приведена часть кода, используемая для генерации этого кода:

$json_file = json_encode($need_options); // Кодировать данные в json данные
$json_file = stripslashes($json_file);

echo $json_file;

header("Content-Type: text/json; charset=" . get_option( 'blog_charset'));
header("Content-Disposition: attachment; filename=$json_name.json");
exit();

Любая помощь будет очень приветствоваться.

Вы что-то упустили в описании — а именно, неясно, как/где вы загружаете этот код. Я предполагаю, что вы каким-то образом пропускаете все через файл шаблона или через файл плагина, поскольку у вас отображается код шаблона.

На мой взгляд, вместо этого вам следует использовать AJAX API:

function my_grab_ajax_wpse_108874() {
  if (empty($_GET['need_options'])) die;
  $need_options = $_GET['need_options']; // ??????
  $need_options = get_post($need_options);

  $json_name = $need_options->post_name;

  $json_file = json_encode($need_options); // Кодировать данные в json данные
  $json_file = stripslashes($json_file);

  header("Content-Type: text/json; charset=" . get_option( 'blog_charset'));
  header("Content-Disposition: attachment; filename=$json_name.json");

  echo $json_file;

  exit();
}
add_action('wp_ajax_my_grab_ajax', 'my_grab_ajax_wpse_108874');
add_action('wp_ajax_nopriv_my_grab_ajax', 'my_grab_ajax_wpse_108874');

Затем запросите данные с http://example.com/wp-admin/admin-ajax.php?action=mygrab_ajax&need_options={some post ID}

Ответ или решение

Чтобы удалить HTML-код из экспортируемого JSON-файла в вашем проекте на PHP, обратим внимание на несколько важных аспектов кода, который вы предоставили. Ваша задача заключается в том, чтобы экспортировать только JSON-данные без лишних HTML-тегов. Давайте разберем, как это правильно реализовать.

1. Удалите HTML теги из кода

Как видно из примера, ваш код генерирует HTML, который, вероятно, не требует вставки. Нам необходимо сосредоточиться на получении и экспорте только JSON-данных. Проверьте, откуда ваш PHP-скрипт получает HTML-шаблоны и уберите их.

2. Измените структуру вывода JSON-данных

Убедитесь, что ваш код возвращает данные в чистом JSON-формате без лишних HTML-оберток. Выполните следующую модификацию вашего кода:

function my_grab_ajax_wpse_108874() {
  if (empty($_GET['need_options'])) die;

  // Получение идентификатора поста
  $need_options = $_GET['need_options'];
  $need_options = get_post($need_options);

  // Переименование файла на базе имени поста
  $json_name = $need_options->post_name;

  // Кодирование данных в формат JSON
  $json_file = json_encode($need_options);
  $json_file = stripslashes($json_file);

  // Устанавливаем заголовки для ответа
  header("Content-Type: application/json; charset=" . get_option('blog_charset'));
  header("Content-Disposition: attachment; filename=$json_name.json");

  // Выводим JSON данные без HTML
  echo $json_file;

  exit();
}
add_action('wp_ajax_my_grab_ajax', 'my_grab_ajax_wpse_108874');
add_action('wp_ajax_nopriv_my_grab_ajax', 'my_grab_ajax_wpse_108874');

3. Загрузка данных через AJAX

Приведенный код предполагает использование AJAX для асинхронной загрузки данных. Убедитесь, что вы вызываете данные по следующему URL:

http://example.com/wp-admin/admin-ajax.php?action=mygrab_ajax&need_options={some post ID}

4. Решение проблем с HTML в JSON

Если вы заметили, что HTML-теги все еще появляются в JSON-файле даже после выполнения всех вышеперечисленных шагов, возможно, проблема заключается в самом контенте, который вы загружаете. Убедитесь, что данные, извлекаемые из get_post(), не содержат HTML-кода. В этом случае вам может понадобиться применить функцию wp_strip_all_tags для очистки значений перед их кодированием в JSON, например:

$need_options->post_content = wp_strip_all_tags($need_options->post_content);
$need_options->post_title = wp_strip_all_tags($need_options->post_title);

Заключение

Ваша итоговая цель состоит в том, чтобы вернуть чистые JSON-данные, которые могут быть легко обработаны на клиенте или использованы в других приложениях без ненужных HTML-тегов. Обеспечив правильность кодирования и обработку данных, вы сможете успешно экспортировать данные в желаемом формате.

Оцените материал
Добавить комментарий

Капча загружается...