Javascript Java脚本只从日志文件中读取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=

出于某种原因,我的脚本最多只能从日志文件中读取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>

发送数据测试
函数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
}


?>