搜索文件中的单词删除行


Search file for word delete line

我在这里搜索,发现了一个脚本的一部分,假设搜索一个单词并删除该行。我想做的事情似乎有点小错误。它什么也没做

Thanks in advance

<?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); 
?>

问题在于变量$workitem周围的单引号。使用单引号会使变量"无效",所以strpos处理的是字符串"$workitem"(不带引号),而不是$workitem的值。

要让它工作,使用

"$workitem"

"{$workitem}"

或者,因为你只使用了一个变量

$workitem

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

首先,单引号中的变量不会被插入,其次取消键的设置没有意义,您需要取消数组元素的设置:

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

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