由于某种原因,我的脚本只会从日志文件中读取最多7行数据。当然我需要它来读取无限(在合理范围内)的数据行,因为我的日志文件每30分钟到1小时将至少有1000到2000行数据。我无法弄清楚为什么如果有超过7行的数据,脚本似乎根本就没有运行。
以下是获取数据的代码:
<html>
<head>
<title>Send Data Test</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body onload="clickFunction()">
<div id="result"></div>
<script type="text/javascript">
function clickFunction() {
var sURL = "dump.log";
var oRequest = new XMLHttpRequest();
oRequest.open("GET", sURL, false);
oRequest.send(null)
if (oRequest.status == 200) {//code 200 is successful case
debugger;
var fileContent = oRequest.responseText;
var jsonArray = new Array();
while (fileContent.indexOf("]") > 0) {
var jsonStr = fileContent.substring(fileContent.indexOf("[") + 1, fileContent.indexOf("]"));
fileContent = fileContent.substring(fileContent.indexOf("]") + 1);
var jsonObj = JSON.parse(jsonStr);
jsonArray.push(jsonObj);
}
debugger;
for (i = 0; i < jsonArray.length; i++) {
var jsonStr1 = jsonArray[i];
$.ajax({
url: "newText.php",
type: "POST",
data: {
email: jsonStr1.email,
event: jsonStr1.event,
timestamp: jsonStr1.timestamp,
sg_message_id: jsonStr1.sg_message_id
}
,
dataType: "JSON",
success: function (data) {
// debugger;
alert(data);
$("#result").html(data);
}
});
}
}
else {
alert("Error executing XMLHttpRequest call!");
}
};
</script>
</body>
</html>
以下是用于将其存储在我的数据库中的代码(文件名newText.php)
<?php
//echo "<pre>";print_r($_REQUEST); die;
$email = json_encode($_POST["email"]);
$timestamp = json_encode($_POST["timestamp"]);
$event = json_encode($_POST["event"]);
$sg_message_id = json_encode($_POST["sg_message_id"]);
$con = new mysqli("localhost", "", "", "");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$queryRes = mysqli_query($con, "INSERT INTO sendgrid_data (email,event,sg_message_id,post_time) VALUES ('$email','$event','$sg_message_id','$timestamp')");
mysqli_close($con);
if($queryRes>0){
echo 'Worked'; // so I know it worked
}
?>
更新:
所以我发现了问题。一些数据行以[和end with]开头,但是其他行以[然后以该行结尾}而在下一行以{然后在该行结束时开始]
开头这是我获取数据的方式,因为它是关于同一个人的。那么,当一些不同的时候,如何让脚本选出数据行呢?