我在这里搜索,发现了一个脚本的一部分,假设搜索一个单词并删除该行。我想做的事情似乎有点小错误。它什么也没做
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周围的引号,只是删除它们。