我有一个包含几个包含的模板,并使用Simple HTML DOM
执行各种任务。
当我参与图书馆时,在某些页面上我收到以下错误:
致命错误:允许的内存大小为134217728字节耗尽(尝试过 在C:\ xampp \ htdocs \ aa \ template.php中分配28672个字节) 142
这是我在模板中的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');
?>
在模板中,名为content的文件夹中包含同名内容文件(somepage.php)。
答案 0 :(得分:2)
尝试
$html->clear();
unset($html);
内存泄漏是由于php5循环引用内存泄漏
和
?>
<?php include('dom.php'); ?>
<?php
可以替换为
include('dom.php');
只是为了保持清洁:)
答案 1 :(得分:1)
更换
include(…);
到
include_once(…);
将阻止您的脚本包含多个脚本。如果您需要一个脚本来使其工作,您应该使用
require_once(…);
我认为你的dom.php还有其他一些内容。也许在包含显示代码的脚本中。 另一件事是你应该删除open-php-tags后面的关闭php标签,以使代码更具可读性。像
这样的东西?>
<?php
不是nessecary。
答案 2 :(得分:0)
你可以试试.htaccess
<IfModule mod_php5.c>
php_value memory_limit 64M
</IfModule>