Php不能用7000行写入xml

Php不能用7000行写入xml,php,xml,Php,Xml,我有一个PHP脚本,您可以在其中的一些字段中添加文本。 PHP脚本添加2个xml文件中字段中的文本。 它工作得很好,但是如果xml变得太大(7000行是我的xml),它就不能再写了 我将我的php.ini更改为 max_execution_time = 300 max_input_time = 900 ;max_input_nesting_level = 64 ; Maximum input variable nesting level memory_limit = 512M

我有一个PHP脚本,您可以在其中的一些字段中添加文本。 PHP脚本添加2个xml文件中字段中的文本。 它工作得很好,但是如果xml变得太大(7000行是我的xml),它就不能再写了

我将我的php.ini更改为

max_execution_time = 300     
max_input_time = 900    
;max_input_nesting_level = 64 ; Maximum input variable nesting level
memory_limit = 512M   
那么这个问题是由php.ini或php文件引起的。 该脚本只有在删除一段xml代码时才起作用

这里是php

ini_set('default_charset', 'utf-8');
if(isset($_POST['post']) && $_POST['post']=='true')

{$file1Content = '<?xml version="1.0"?>
<channels>';
for($j=0; $j < $_POST['total1']; $j++)
{if(isset($_POST['checkbox1'.$j]) && $_POST['checkbox1'.$j]=="on")
{$file1Content .="
<channel>
<title>".$_POST['checkbox1'.$j.'_title']."</title>
<img>".$_POST['checkbox1'.$j.'_img']."</img>
<info>".$_POST['checkbox1'.$j.'_info']."</info>
<url>".$_POST['checkbox1'.$j.'_url']."</url>
</channel>";}}
$file1Content .= "</channels>";
$fileHandle = fopen($file1,"w");
fwrite ($fileHandle, $file1Content);
fclose ($fileHandle);


if (isset($_POST['post']) && $_POST['post']=="true" && $_POST['title']!='')
$fileContent = file_get_contents($file1);
$fileNewXml = "
<title>".$_POST['title']."</title>
<img>".$_POST['image']."</img>
<info>".$_POST['info']."</info>
<url>".$_POST['url']."</url>";  
 //Place elemnt in the right place
 $pos=$_POST['pos1'];   
$allTags=explode("<channel>",$fileContent,strlen($fileContent));
if(count($allTags)==1) //if file is empty
{$fileNewContent='<?xml version="1.0"?>
<channels>
<channel>"'.$fileNewXml.'</channel></channels>';}

    $fileHandle = fopen($file1,"w");

fwrite ($fileHandle, $fileNewContent);

fclose ($fileHandle);



<?php

                    $content= file_get_contents($file1);

                    $arr = simplexml_load_string($content);

                    $i=1;

                    foreach ($arr as $element)

                    { 

                        echo "<option value='$i'>$element->title</option>"; 

                        $i++;

                    }       

                ?>
ini\u集(“默认字符集”、“utf-8”);
如果(isset($\u POST['POST'])&&&$\u POST['POST']=='true'))
{$file1Content='1〕
';
对于($j=0;$j<$\u POST['total1'];$j++)
{if(isset($_POST['checkbox1'.$j])&&&$_POST['checkbox1'.$j]=“开”)
{$file1Content.=”
“$_POST['checkbox1'.$j.'u title'.”
“$_POST['checkbox1'.$j.'u img']”
“$_POST['checkbox1'.$j.'u info'.”
“$\u POST['checkbox1'.$j.'u url']”
";}}
$file1Content.='';
$fileHandle=fopen($file1,“w”);
fwrite($fileHandle,$file1Content);
fclose($fileHandle);
如果(isset($\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
$fileContent=file\u get\u contents($file1);
$fileNewXml=”
“$_POST['title']”
“$\u POST['image']”
“$_POST['info']”
“$_POST['url']”;
//将elemnt放置在正确的位置
$pos=$_POST['pos1'];
$allTags=explode(“,$fileContent,strlen($fileContent));
if(count($allTags)==1)//如果文件为空
{$fileNewContent='1〕
“'.$fileNewXml.';}
$fileHandle=fopen($file1,“w”);
fwrite($fileHandle,$fileNewContent);
fclose($fileHandle);

要解决这个问题,只需转到php.ini并添加这个

max_input_vars = 3000

你能给我们看一下PHP文件吗?如果答案是增加了,那么你可能想问的错误消息是“”。当你选择3000作为一个值时,你可能会涉及到现有的Q&a,也就是说,我想知道一点关于这个数字:为什么是3000?