当运行以下代码时,Im会得到无效的参数错误。我试图更改$info数组中一行的值,然后将其内爆,将其父数组内爆,然后将整个shebang保存回原来的位置。
$rowpre = $_GET['row'];
$newfieldvalue = $_GET['nfv'];
$row = --$rowpre;
$data = file_get_contents("temp.php");
$csvpre = explode("###", $data);
$i = 0;
foreach ( $csvpre AS $key => $value){
$i++;
if($i = $row){
$info = explode("%%", $value);
$info[$target] = $newfieldvalue;
$presave = implode("%%", $info);
}
}
$save = implode("###", $presave);
$fh = fopen("temp.php", 'w') or die("can't open file");
fwrite($fh, $save);
fclose($fh);更新在下面
$rowpre = $_GET['row'];
$newfieldvalue = $_GET['nfv'];
$target = $_GET['target'];
$row = --$rowpre;
$data = file_get_contents("temp.php");
$csvpre = explode("###", $data);
$i = 0;
foreach ( $csvpre AS $key => $value){
$i++;
if($i == $row){
$info = explode("%%", $value);
$info[$target] = $newfieldvalue;
$csvpre[$key] = implode("%%", $info);
}
}
$save = implode("###", $csvpre);
$fh = fopen("temp.php", 'w') or die("can't open file");
fwrite($fh, $save);
fclose($fh);目标是我希望用新字段值数据更新的选定行中的字段。
发布于 2009-10-27 07:35:16
$save =内爆(“###”,$presave);
此时,$presave是一个字符串,应该是一个用于内爆的数组。创建一个数组,在其中推送$presave-值,并将其内爆。
发布于 2009-10-27 07:34:37
$presave包含最后处理的行(即字符串),implode需要一个数组。若要将行存储回原始数组中,请更改:
$presave = implode("%%", $info); 至:
$csvpre[$key] = implode("%%", $info); 若要将整个CSV数组转换为字符串,请更改:
$save = implode("###", $presave);至:
$save = implode("###", $csvpre);还有一个问题:
if($i = $row){应:
if($i == $row){因为您希望比较变量,而不是赋值$i。
https://stackoverflow.com/questions/1629230
复制相似问题