搜索文件中的单词删除行

时间:2014-08-13 17:34:28

标签: php

我在这里搜索并发现一个脚本的一部分,假设搜索一个单词并删除该行。我正在尝试做的事情似乎有点轻微的错误。它没有做任何事情

提前致谢

<?php
//  Separate choice.php has the following pull down 
//  Select item to delete from list
//  <option value="item1.php">Item 1</option>
//  <option value="item2.php">Item 2</option>
//  ...... many items.

$workitem = $_POST["itemtodelete"]; 

$file = file("option.list.php");
foreach( $file as $key=>$line ) {
    if( false !== strpos($line, '$workitem') ) {
      unset ($key);
    }
}
$file = implode("\n", $file); 

?>

3 个答案:

答案 0 :(得分:1)

问题在于变量$ workitem周围的单引号。使用单引号会使变量&#34;无效&#34;,因此strpos正在使用字符串&#34; $ workitem&#34; (没有引号),而不是$ workitem的值。

要使其正常工作,请使用

"$workitem"

"{$workitem}"

或者,因为您只使用变量

$workitem

第二个选项是你应该在大多数情况下使用的选项,但正如我所提到的,第三个选项是你应该在这里使用的选项。

答案 1 :(得分:0)

首先,单引号中的变量不会被插值,第二次取消设置键确实没有意义,你需要取消设置数组元素:

foreach( $file as $key=>$line ) {
    if( false !== strpos($line, $workitem) ) {
        unset ($file[$key]);
    }
}

答案 2 :(得分:-1)

我猜这是$ workitem周围的引号,只需删除它们。