Php不能用7000行写入xml
我有一个PHP脚本,您可以在其中的一些字段中添加文本。 PHP脚本添加2个xml文件中字段中的文本。 它工作得很好,但是如果xml变得太大(7000行是我的xml),它就不能再写了 我将我的php.ini更改为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
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?