1

我试图创建一个使用PHP脚本的Java文件,但由于某种原因,每当我运行此脚本时,屏幕上出现以下错误:允许的内存大小134217728字节用尽(试图分配24字节)

致命错误:用尽134217728个字节允许存储器(试图分配24个字节)中C:\文件路径\ file.php上线

这是代码用线阻止88:

$var1 = explode(".", $filenamee); 
$var2 = explode(".", $folder); 

$filename = "extfiles/".$var2[0]."/".$var1[0].".java"; 
$file = fopen($filename, "c"); 
$lines_array = array(); 
while (!feof($file)) { 


    $line = fgets($file); 
    array_push($lines_array, $line); // This is line 88 

} 

我试图从128MB的php.ini改变内存限制为512MB,但没有奏效。我也尝试使用此设置代码的内存限制:

ini_set('memory_limit', '512MB'); 

但是,这也没有工作。

我能做些什么来解决这个问题?

+0

为什么您使用“C”为模式的fopen,它是写了,你们就读取文件。你还说你想创建文件,但是在代码中它看起来像你阅读代码。 –

+0

我需要做的是创建一个Java文件,然后向其中添加一些代码。用什么理由来代替“c”? – Ido

+0

用c它会创建代码,但你期望从循环?循环读取您刚创建的文件的行。 –

回答

1

请阅读documentation

警告

如果传递的文件指针无效你可能会得到一个无限循环, 因为FEOF()未能返回TRUE。

请确保您的文件指针有效,并传递“r”(=阅读)模式。

+0

但该文件不存在,它应该创建文件 – Ido

+0

那么你想要做什么?如果你调用'fgets',你正试图从文件中读取。如果它是由'fopen'创建的,你希望从文件中读取什么? – Axel

2

试试这个:

ini_set('memory_limit', '512M'); 
相关问题