从php发送到java脚本时从json对象中排除资源

时间:2017-09-01 02:46:15

标签: javascript php arrays json

发布帖子以澄清问题,并提出有效问题。

我有一个PHP脚本来连接MySQL数据库。我创建了一个存储连接字符串的PRIVATE.php文件。该脚本连接然后在db上运行查询,将结果作为关联数组返回。查询确实运行,并返回结果。

当我使用json_encode将结果发送到客户端的java脚本时,结果将传递给js。但是,传递的内容包括关联数组之前的PRIVATE.php引用。因此,看起来js无法访问json对象来读取查询结果。

有没有办法过滤掉PRIVATE.php所以它不会被提取并在json包中发送?或者有没有办法在js中适当地解析它?

这是PHP:

<?php

require './PRIVATE.php';

session_start();

//Connect to MySQL Database
$conn=mysqli_connect($ip,$user,$pass,$db) or die('Error connecting to MySQL 
server: ' . mysqli_error(@conn));

//Some SQL statement returning a result to $myArray    

echo json_encode($myArray);

当我调试js时,传递的变量如下所示:

myvariable = "PRIVATE.php {"example":"result"}"  

我想看到的是:

myvariable = {"example":"result"}

我一直无法找到解决此问题的答案。任何方向将不胜感激。我确信这是我的错误,所以请把它放在我身上。

由于

1 个答案:

答案 0 :(得分:0)

好的,所以这里的答案相当简单,因为我怀疑它会是。对输出缓冲的更多研究就是诀窍。

<?php

ob_start();
require './PRIVATE.php';
ob_end_clean();

session_start();

//Connect to MySQL Database
$conn=mysqli_connect($ip,$user,$pass,$db) or die('Error connecting to MySQL server: ' . mysqli_error(@conn));

现在响应不再包含PRIVATE.php文件引用,并且js可以适当地访问变量。

接下来,我将把PRIVATE.php文件移出根目录以获得额外的安全性。作为补充说明,整个连接字符串也可以包含在PRIVATE.php文件中。但我并不认为需要保护它,因为连接变量已经隐藏了。