0

いくつかのインクルードを含むテンプレートがあり、Simple HTML DOMさまざまなタスクに使用しています。

ライブラリを含めると、一部のページで次のエラーが発生します。

致命的なエラー: C:\xampp\htdocs\aa\template.php 行 142 で、134217728 バイトの許容メモリ サイズが使い果たされました (28672 バイトを割り当てようとしました)

これは、テンプレート内の私の php コードです。

<?php
$currentFile = $_SERVER["PHP_SELF"];
$parts = Explode('/', $currentFile); 
$page = $parts[count($parts) - 1];
$parent = basename(dirname($_SERVER['PHP_SELF']));
$both = $parent.'/'.$page;
$content = $filename.".html";
$sidebar = $filename. "-sidebar.html";

?>
<?php include('dom.php'); ?>
<?php 

if (!isset($title)) {
$html = file_get_html($_SERVER['DOCUMENT_ROOT'].'/aa/content/'.$content);

$element = $html->find('h1'); 
if ($element) {
$titletag = $element[0]->plaintext . ' | about-berlin.com';
}

    }
else {
$titletag = $title; 
}
$html->__destruct();
?>
<!DOCTYPE html>

奇妙なことに、コードを使用せずに、このようなライブラリのみを含めた場合でも、同じメモリ エラーが発生します。

<?php include('dom.php'); ?>

含めないと、すべてがエラーなしで実行されます。

file_get_html()ほとんどの問題の原因と思われる を使用せずに、このエラーを取得するにはどうすればよいでしょうか? 変更せずにこの問題を解決するにはどうすればよいphp.iniですか?

編集

いくつかの説明。私のテンプレートは次のように機能します:

somepage.php が要求されます。内部には次のコードがあります。

<?php 
$path_parts = pathinfo(__FILE__);
$filename = $path_parts['filename'];

include ($_SERVER['DOCUMENT_ROOT'].'/aa/template.php');
?>

テンプレートでは、同じ名前のコンテンツ ファイル (somepage.php) が content というフォルダーからインクルードされます。

4

3 に答える 3

1

あなたの交換

include(…);

include_once(…);

スクリプトが複数のスクリプトを含むのを防ぎます。それを機能させるためのスクリプトが必要な場合は、使用する必要があります

require_once(…);

あなたのdom.phpのどこかに別のインクルードがあると思います。表示されたコードを含むスクリプト内にある可能性があります。もう 1 つのことは、コードを読みやすくするために、opening-php-tags の後に続く closephp-tags を削除する必要があることです。何かのようなもの

?>
<?php

必須ではありません。

于 2013-07-24T18:15:28.037 に答える