我在这里搜索并发现一个脚本的一部分,假设搜索一个单词并删除该行。我正在尝试做的事情似乎有点轻微的错误。它没有做任何事情
提前致谢
<?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);
?>
答案 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周围的引号,只需删除它们。