簡體   English   中英

php中的數組出現Linux錯誤:503服務不可用

[英]Linux error for array in php: 503 Service Unavailable

這行代碼在Linux上導致錯誤。

$p_event_a = strtotime($p_events['date_time'][$evn]);

如果我注釋掉for循環,錯誤將消失。 為什么數組會導致503錯誤?

    $p_events = array();

// Retrieve Public Events
    for ( $ev = 0 ; $ev < $nev ; $ev++ ) {
        $p_event_r = strtotime($ev_order[$ev]);
        for ( $evn = 0 ; $evn < $nev ; $evn++ ) {
            $p_event_a = strtotime($p_events['date_time'][$evn]);
            if ( $p_event_a == $p_event_r ) {
                $evnt_date = date('Y-m-d H:i', $p_event_a);
                if ( $evnt_date <= $endd && $evnt_date >= $stad ) {
                    $public_event = '<span> <a>'.$p_events['title'][$evn].'</a> </span>';           
                    $event['tit'] = $public_event;
                    $event['cat'] = $aevent[0];
                    $event['cnm'] = $aevent[1];
                    $event['seq'] = $aevent[2];             
                    $event['col'] = $aevent[5];
                    $event['bco'] = $aevent[6];
                    $event['inf'] = '';
                    $evtList[$evnt_date][] = $event;        
                }
                break;
            }
        }
    }

大家要注意,這是一個完全荒謬的猜測。

首先,您需要啟用錯誤報告以在屏幕上“查看”錯誤:

ini_set('display_errors',1);
error_reporting(-1);

否則,您需要檢查錯誤日志以查看發生了什么。

我猜? 您遇到“索引越界”錯誤,因為您正在嘗試訪問不存在的數組索引。 (計算$p_events['date_time'][$evn]的元素,看看它們是否是您認為應該的數字)

$nev來自哪里? 是來自count()調用嗎?

如果您的for循環等效於:

for ( $evn = 0 ; $evn < count($whatever) ; $evn++ ) {

注意count()返回元素的數量,但是在循環中,您從0開始計數,因此您將循環一個額外的結果。 (例如,如果count = 5,則您有:0 1 2 3 4 5,這是6個元素)。

這會解決嗎?

for ( $evn = 0 ; $evn < ($nev-1) ; $evn++ ) {

(括號在$ nev-1中不是必需的,但這是為了清楚起見)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM