PHP与JSON问题

时间:2018-05-07 19:07:27

标签: php json

我是PHP的新手,我遇到了一个让我发疯的问题。也许这里有人可以让我知道我做错了什么。

我有一个用户填写。下面的脚本使用输入mysql数据库的日期来生成json数据:

<?php
    include("../includes.php");
    $sq = new SQL();

    $TableName = "permissions";
    $Fields = $_POST["Fields"];
    $FieldsSTR = "`" . str_replace("*;*","`,`", $Fields) . "`";
    $Join = "AND";
    $Start = 0;
    $Limit = $_POST["Limit"];
    if($Limit == "")$Limit = 1000;
    $Where = $_POST["Where"];
    $WhereSTR = "";
    if($Where !== "")$WhereSTR = str_replace("*;*"," $Join ", $Where);

    $q = "SELECT $FieldsSTR FROM `$TableName` $WhereSTR";
    $data = $sq->sqlQuery($q);
    if(sizeof($data)>0)array_shift($data);
    header("Content-Type: application/json");
    echo "[";
    foreach($data as $k=>$line){
        echo "[";
        echo "\"" . str_replace("*;*","\",\"",$line) . "\"";
        echo "]";
        if($k < sizeof($data) - 1)echo ",";
    }
    echo "]";
    exit;
?>

我遇到的问题是它已停止工作。有一天它很好,第二天它不工作。我想可能导致这个问题的原因是疯狂的用户数据已输入数据库。在我的foreach声明中,我试图替换&#34 ;;&#34;用&#34;
&#34;标签,但那没有用。

以前有人遇到过这个问题吗?也许有人可以指出我正确的方向!

由于

杰森

1 个答案:

答案 0 :(得分:0)

感谢大家的意见。我能够偶然找到解决我眼前问题的方法。我将foreach循环更改为以下内容:

foreach($data as $k=>$line){
       $parts = explode("*;*",$line);
        $NEWLINE = array();
        for($i = 0;$i < sizeof($parts);$i++){
            $value = $parts[$i];
            $value = str_replace("\r","&lt;br&gt;",str_replace("\n","&lt;br&gt;",$value));
            $NEWLINE[] = "\"" . $value . "\"";
        }
        $FINDATA[] = "[" . implode(",",$NEWLINE) . "]";
    }

但我现在将研究使用评论中提到的json_encode()。

谢谢,

杰森