我是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;标签,但那没有用。
以前有人遇到过这个问题吗?也许有人可以指出我正确的方向!
由于
杰森
答案 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","<br>",str_replace("\n","<br>",$value));
$NEWLINE[] = "\"" . $value . "\"";
}
$FINDATA[] = "[" . implode(",",$NEWLINE) . "]";
}
但我现在将研究使用评论中提到的json_encode()。
谢谢,
杰森