2012-09-07 77 views
-1

做Drupal的更新後,我得到這個錯誤 - 我相信,以前的開發(愚蠢)編輯的核心:致命錯誤:用盡134217728個字節允許內存大小 - Drupal的

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 74 bytes) in /home/readyby2/public_html/includes/common.inc on line 1408 

我相信它有話做更新的意見模塊。它發生在管理員>>人物>>個人資料

任何潛在客戶都可以給我嗎?

我檢查我的common.inc,這裏的線1408和周邊:

function _filter_xss_split($m, $store = FALSE) { 
    static $allowed_html; 

    if ($store) { 
    $allowed_html = array_flip($m); 
    return; 
    } 

出錯行似乎是$allowed_html = array_flip($m);

下面是完整的功能:

function _filter_xss_split($m, $store = FALSE) { 
    static $allowed_html; 

    if ($store) { 
    $allowed_html = array_flip($m); 
    return; 
    } 

    $string = $m[1]; 

    if (substr($string, 0, 1) != '<') { 
    // We matched a lone ">" character. 
    return '&gt;'; 
    } 
    elseif (strlen($string) == 1) { 
    // We matched a lone "<" character. 
    return '&lt;'; 
    } 

    if (!preg_match('%^<\s*(/\s*)?([a-zA-Z0-9]+)([^>]*)>?|(<!--.*?-->)$%', $string, $matches)) { 
    // Seriously malformed. 
    return ''; 
    } 

    $slash = trim($matches[1]); 
    $elem = &$matches[2]; 
    $attrlist = &$matches[3]; 
    $comment = &$matches[4]; 

    if ($comment) { 
    $elem = '!--'; 
    } 

    if (!isset($allowed_html[strtolower($elem)])) { 
    // Disallowed HTML element. 
    return ''; 
    } 

    if ($comment) { 
    return $comment; 
    } 

    if ($slash != '') { 
    return "</$elem>"; 
    } 

    // Is there a closing XHTML slash at the end of the attributes? 
    $attrlist = preg_replace('%(\s?)/\s*$%', '\1', $attrlist, -1, $count); 
    $xhtml_slash = $count ? ' /' : ''; 

    // Clean up attributes. 
    $attr2 = implode(' ', _filter_xss_attributes($attrlist)); 
    $attr2 = preg_replace('/[<>]/', '', $attr2); 
    $attr2 = strlen($attr2) ? ' ' . $attr2 : ''; 

    return "<$elem$attr2$xhtml_slash>"; 
} 
+1

我在給定的代碼中沒有看到任何內存泄漏。如果您確定Drupal框架本身存在問題,請備份您的項目並重新安裝。順便說一句,不要用正則表達式解析html。 – Leri

+0

註釋掉'static $ allowed_html',你的問題可能會消失,靜態變量可能只是持有太多的信息 – Aknosis

+0

它只是在試圖運行客戶端設置的自定義鏈接時。 –

回答

3

只要內存結束,就會發生此錯誤 - 這可能發生在您的代碼中的任何位置,並且不需要屬於您在錯誤中顯示的腳本和行號信息。

您的php在php.ini中需要更多內存,或者檢查腳本中是否有不必要的內存使用情況(通常是大型內存數據庫記錄)。

編輯:您發佈的代碼不是(愚蠢)由開發人員更改 - 它仍然是原始的drupal代碼。

相關問題