[我遇到一个问题,我尝试用字符串替换php include(我的菜单)中的一行-并且它擦除了整个menu.php文件而不是指定的一个标签。
menu.php
<?php
echo' <A class="btn btn-small btn-info" href="Home.php">Home</A>
<A class="btn btn-small btn-info" href="Content.php">Content</A>
<A class="btn btn-small btn-info" href="Streaming.php">Streaming</A>
<A class="btn btn-small btn-info" href="Audio.php">Audio</A>
<A class="btn btn-small btn-info" href="Power.php">Power</A>
<A class="btn btn-small btn-info" href="STL.php">STL</A>
<A class="btn btn-small btn-info" href="Axia.php">Axia</A>
<A class="btn btn-small btn-info" href="Codecs.php">Codecs</A>
<A class="btn btn-small btn-info" href="Office.php">Office</A>
<A class="btn btn-small btn-info" href="Cameras.php">Cameras</A>
<A class="btn btn-small btn-info" href="Other.php">Other</A>
?>
和之前已定义$ page的删除php
$remove_item = '<A class="btn btn-small btn-info" href="'.$page.'.php">'.$page.'</A>';
$file = fopen("/Includes/menu.php", 'w+');
$menu = file_get_contents($file);
$menu_new = str_replace($remove_item, '', $menu);
fwrite($file, $menu_new);
fclose($file);
我确定这一定是我正在做的基本的和愚蠢的,或者更确切地说是-不做的。
非常感谢您的帮助
第一个错误是使用file_get_content读取使用fopen打开的流。这肯定会失败,并且file_get_contents还将以txt的形式读取php,并且不会进行处理,因此您将收到
第二,以'W +'模式打开,在'menu.php'上将内容截断为空,如果您想读取实际内容,则必须使用'R +',但是它也以txt的形式读取内容,但是使用fread代替的file_get_content
我建议使用include而不是读取文件的内容,从而允许服务器处理其中的php代码
include('menu.php');
和在menu.php内部
$menu=' <A class="btn btn-small btn-info" href="Home.php">Home</A>
<A class="btn btn-small btn-info" href="Content.php">Content</A>
<A class="btn btn-small btn-info" href="Streaming.php">Streaming</A>
<A class="btn btn-small btn-info" href="Audio.php">Audio</A>
<A class="btn btn-small btn-info" href="Power.php">Power</A>
<A class="btn btn-small btn-info" href="STL.php">STL</A>
<A class="btn btn-small btn-info" href="Axia.php">Axia</A>
<A class="btn btn-small btn-info" href="Codecs.php">Codecs</A>
<A class="btn btn-small btn-info" href="Office.php">Office</A>
<A class="btn btn-small btn-info" href="Cameras.php">Cameras</A>
<A class="btn btn-small btn-info" href="Other.php">Other</A>';
然后您可以执行替换