PHP json_encode() 在数组前面添加不需要的字符串“connected”

问题描述 投票:0回答:1

我正在使用 mysqli 从数据库获取数据并希望显示收到的数据。

我想这样做的原因是因为我将使用主页中的数据(显然), 但是我正在另一个 php 文件中运行 sql 查询。

文件夹结构供参考:

/
├─ api/
│  ├─ popular-items.php
├─ home/
│  ├─ index.php

如果我按照预期的方式执行此操作,将

popular-items.php
包含在
index.php
中,我将面临必须释放内存并关闭
index.php
文件内的连接的烦恼。
这是我不想在那里的更多不必要的代码。

这就是为什么我选择对结果进行 json 编码,然后回显它并在内部使用它

index.php

这样我就可以保留我的代码以释放内存并关闭内部连接
popular-items.php

但是由于某种未知的原因

json_encode()
在前面添加了字符串“connected”。 (见下图)

我尝试使用 preg_replace 手动删除该字符串,但由于某种神奇的原因它仍然存在。

$result = $conn->query($query);

// fetch the data into a regular PHP array
$data = $result->fetch_all(MYSQLI_ASSOC);

// manually construct JSON output
$json_output = json_encode($data);

// remove the unwanted "connected" prefix if present -- DOESN'T WORK
$json_output = preg_replace('/^connected/', '', $json_output);

echo $json_output;

我在网上没有找到其他人遇到这个问题。

连 ChatGPT 都已经没有解决方案了,现在只是胡说八道。

php json mysqli
1个回答
0
投票

不,事实并非如此。它与

json_encode()
没有任何关系。您应该在源中搜索
connected
字符串(我建议区分大小写,搜索字面上的
"connected"
以及带有单引号的字符串),这显然是首先回响的。通过字符串本身,我首先检查
$conn
对象的 c'tor。

© www.soinside.com 2019 - 2024. All rights reserved.