【问题标题】:HTML cannot see Javascript code; execution in php code breaks without error?HTML 看不到 Javascript 代码;在php代码中执行没有错误?
【发布时间】:2015-01-13 03:50:21
【问题描述】:

我正在尝试执行一些 PHP 代码,然后使用 Javascript 获取我的一个 PHP 变量并使用它打开一个新窗口,其中包含该变量的 CSV 格式的内容。

这在我的 PHP 变量相对较小(即 1,000 个条目)时有效,但是当我在数组中具有例如大约 20,000 个条目的代码上执行它时,它会在下面的 PHP 代码中停止而不会引发任何错误。我的问题可能是什么?昨天我将问题追溯到 array_column - 代码一旦到达该行就会停止执行。然而,它今天又做了一次,即使没有那个功能,我认为肯定有更大的问题。我重新包含了那些 array_column() 调用,因为我认为它们不是真正的问题。这是 PHP 代码:

function generateTextFile(){
    $array = $_SESSION["array"];
    $hostCol = array_column($array, "host");
    $timeCol = array_column($array, "Time");
    $col3 = array_column($array, "col3");
    $col4 = array_column($array, "col4");
    $signalCol = array_column($array, "Signal");

    for($x = 0; $x < count($timeCol); $x++){
        if(!isset($array[$x]["host"])){
            $hostCol[$x] = $_GET['hostname'];
        }
        else{
            $hostCol[$x] = $array[$x]["host"];
        }
    }
    $subArray = array($hostCol, $timeCol, $col3, $col4, $signalCol);

    $out = array();
    foreach($subArray as $rowkey => $row){ // invert the array
        foreach($row as $colkey => $col)
            $out[$colkey][$rowkey] = $col;
    }

    $text = "";
    for($x = 0; $x < count($out); $x++){
        $curText = implode(",", $out[$x]);
        $text = $text . $curText . "<br>";
    }
    $_SESSION['text'] = $text;
}

我在上面的 PHP 代码中做错了什么吗?它只是构建一个数组,然后以 CSV 格式创建另一个变量。在调用上述函数之后,我在我的 HTML 部分中声明了脚本。非常感谢您的洞察力。

【问题讨论】:

  • 你的 php 的 max_execution_time 是什么?如果它适用于很少的记录但会中断很多记录,则可能是超时问题。尝试increase time limit 并测试它是否有效。

标签: javascript php html csv


【解决方案1】:

PHP 有一个叫做“时间限制”的东西来处理脚本。 默认为 30 秒,您可以更改:

set_time_limit( int $seconds );

我在尝试处理大约 6.000 个 CSV 时遇到了同样的问题,并用这种方法解决了。 希望你觉得这很有用!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-31
    相关资源
    最近更新 更多