Ошибочный возврат результата функции json_encode

M
На сайте с 03.06.2012
Offline
73
515

Здравствуйте уважаемые форумчане

есть у меня небольшая функция

$sql_clients = 'SELECT 
*
FROM
OUTGOING";

$result = ibase_query($sql_clients) or die("Couldn't execute query." . ibase_errcode());
$responce = null;
$i = 0;
while ($row = ibase_fetch_assoc($result)) {

$responce->rows[$i]['id'] = $row["ClientId"];
$responce->rows[$i]['cell'] = array(
$row["ClientId"],
$row["Command"],
$row["Expire"],
$row["HOSTNAME"],
$row["IP"],
$row["DATE"],
$row["STATUS"],
$row["OS"],
$row["DOMAIN"]
);
$i++;
}
echo json_encode($responce);

Функция как бы работает верно но в строке "Command" может быть что то похоже на это


opt_scan:<Settings><Setting name="AVQuick" section="Manual" type="0"><Value>1</Value></Setting><Setting name="AVFull" section="Manual" type="0"><Value>1</Value></Setting><Setting name="AVCustom" section="Manual" type="0">
....

и тогда функция возвращает что то странное


opt_scan:<Settings>\n\n<Setting name=\"AVQuick\" section
=\"Manual\" type=\"0\">\n\n<Value>\n1\n<\/Value>\n<\/Setting>\n<Setting name=\"AVFull\" section=\"Manual
\" type=\"0\">\n\n<Value>\n1\n<\/Value>\n<\/Setting>\n<Setting name=\"AVCustom\" section=\"Manual\" type
=\"0\">\n\n<Value>\n1\n<\/Value>\n<\/Setting>\n<Setting name=\"ASQuick\" section=\"Manual\" type=\"0
\">\n\n<Value>\n1\n<\/Value>\n<\/Setting>\n<Setting name=\"ASFull\" section=\"Manual\" type=\"0\">\n
\n<Value>\n1\n<\/Value>\n<\/Setting>\n<Setting name=\"ASCustom\" section=\"Manual\" type=\"0\">\n\n<Value
>\n1\n<\/Value>\n<\/Setting>\n<Setting name=\"AMQuick\" section=\"Manual\" type=\"0\">\n\n<Value>\n1
\n<\/Value>\n<\/Setting>\n<Setting name=\"AMFull\" section=\"Manual\" type=\"0\">\n\n<Value>\n1\n<\/Value
>\n<\/Setting>\n<Setting name=\"AMCustom\" section=\"Manual\" type=\"0\">\n\n<Value>\n1\n<\/Value>\n
<\/Setting>\n<Setting name=\"RootQuick\" section=\"Manual\" type=\"0\">\n\n<Value>\n1\n<\/Value>\n ....

База данных досталась в наследство так что в ней изменять хранение данных нельзя.

Помогите пожалуйстаю Спасибо!

M
На сайте с 26.11.2008
Offline
51
#1

Попробуйте использовать параметр JSON_UNESCAPED_UNICODE

или как вариант, данные ключей кодировать в base64, а потом уже весь массив в json, а на выходе уже наоборот.

Коли базу трогать нельзя

Веб программирование, создание плагинов под любые CMS, разработка сайтов с нуля, помочь в настройке хостинга и переездах, очистка от вирусов и другие услуги для ваших проектов (http://www.maxgal.com)
K
На сайте с 03.06.2015
Offline
45
#2
meverikxp:
и тогда функция возвращает что то странное

Так и должно быть. Это один из способов передать скалярные кавычки.

Ваш вопрос по эстетике, или по функционалу?

---------- Добавлено 11.08.2015 в 05:02 ----------

meverikxp:
может быть что то похоже на это

На XML похоже это.

MYSQL PHP JS HTML CSS SEO TXT США СССР
siv1987
На сайте с 02.04.2009
Offline
427
#3

Не увидел ничего странного. Нормальный результат.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий