Javascript Java脚本只从日志文件中读取7行数据
出于某种原因,我的脚本最多只能从日志文件中读取7行数据。当然,我需要它读取无限(在合理范围内)行数据,因为我的日志文件每30分钟到1小时至少有1000-2000行数据。我不明白为什么如果有超过7行的数据,脚本似乎根本不运行 以下是获取数据的代码:Javascript Java脚本只从日志文件中读取7行数据,javascript,php,Javascript,Php,出于某种原因,我的脚本最多只能从日志文件中读取7行数据。当然,我需要它读取无限(在合理范围内)行数据,因为我的日志文件每30分钟到1小时至少有1000-2000行数据。我不明白为什么如果有超过7行的数据,脚本似乎根本不运行 以下是获取数据的代码: <html> <head> <title>Send Data Test</title> <script type="text/javascript" src=
<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>
发送数据测试
函数clickFunction(){
var sURL=“dump.log”;
var oRequest=newXMLHttpRequest();
打开(“获取”,sURL,false);
oRequest.send(空)
如果(oRequest.status==200){//code 200为成功案例
调试器;
var fileContent=oRequest.responseText;
var jsonArray=新数组();
而(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);
}
调试器;
对于(i=0;i
下面是用于将其存储在我的数据库中的代码(文件名newText.php)
更新:
所以我发现了问题。有些数据行以[和]开头,但其他行以[然后以}结尾,下一行以{然后在该行上以}结尾]
这是一种当数据是关于同一个人时获取数据的方法。那么,当某些数据不同时,如何让脚本挑出数据行呢?这些文件的第7行有什么独特之处吗?第8行?一点也没有。都是相同类型的数据。web inspector控制台中有错误吗?@Randythonmas您的JS脚本由两部分组成:1-用数据填充
jsonArray
,2-将数据发送到PHP脚本。问题发生在哪一部分?是否尝试放置console.log(jsonArray)
填充后?我的建议是在代码中的每个有意义的地方放置控制台.log
调用并跟踪发生的情况。我发现问题只是不知道如何解决。似乎有些行不以]结尾}结尾,因为它们继续到下一行,而该行以]结尾。这就是脚本挂起的地方。关于如何更改代码以便在这些行上它将两行分开读取而不挂起,有什么想法吗?
<?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
}
?>