我有文件:用代码(文件名inc.php)的网站:功能“FWRITE”写不正确的内容
<?php
$menu['Position1']['menu1'][]='module1';
$menu['Position1']['menu2'][]='module2';
?>
我想改变这个文件的代码到新节点阵列添加到它。然后我测试简单的代码:
include 'inc.php';
//add new value to array
$menu['Position3']['menu3'][]='module3';
$menu['Position4']['menu4'][]='module4';
//create string with fomat above
$text ='<?php ' ."\n";
foreach($menu as $position_tmp => $value1_tmp){
foreach($value1_tmp as $menu_tmp => $value2_tmp){
foreach($value2_tmp as $component_tmp){
$text .= "\$menu['" .$position_tmp ."']['" .$menu_tmp ."'][]='" .$component_tmp ."'; \n";
}
}
}
$text .= '?>';
然后我测试$文本。后续代码var_dump($文本);输出:
<?php
$menu['Position1']['menu1'][]='module1';
$menu['Position1']['menu2'][]='module2';
$menu['Position3']['menu3'][]='module3';
$menu['Position4']['menu4'][]='module4';
?>
没关系。我写的文件inc.php:
$fp = fopen('inc.php', 'w+');
fwrite($fp,$text);
fclose($fp);
内容inc.php的:
<?php
$menu['Position1']['menu1'][]='module1';
$menu['Position1']['menu2'][]='module2';
$menu['Position3']['menu3'][]='module3';
$menu['Position3']['menu3'][]='module3';
$menu['Position3']['menu3'][]='module3';
$menu['Position4']['menu4'][]='module4';
$menu['Position4']['menu4'][]='module4';
$menu['Position4']['menu4'][]='module4';
?>
我不知道为什么! 然后我测试写入新文件:newfile.php。然后newfile.php的内容是正确的。
<?php
$menu['Position1']['menu1'][]='module1';
$menu['Position1']['menu2'][]='module2';
$menu['Position3']['menu3'][]='module3';
$menu['Position4']['menu4'][]='module4';
?>
我尝试删除inc.php,重命名newfile.php到inc.php
sleep(5); // I open newfile.php. It's correct.
unlink('inc.php');
rename('newfile.php','inc.php');
inc.php仍然不正确。我无法理解。请帮助我!
“我试着删除inc.php,重命名newfile.php到inc.php 睡眠(5); //我打开newfile.php这是正确的 取消链接( 'inc.php'); 重命名(” newfile.php','inc.plist.php'); inc.php仍然不正确,我不明白,请帮助我!你确定你的重命名指令? –
对不起,没有“.plist”的新文件名。该代码是:rename('newfile.php','inc.php'); – user3111665