Amacım burada%% (alan terminatör) tarafından daha sonra, temp.php açmak # # # (line terminatör) tarafından patlayabilir. Belirli bir hat üzerinde, daha sonra tekrar her şeyi birlikte çökmek ve kaydetmek, belirli bir alanını değiştirin.
Birkaç değişkenler Burada oyun vardır:
row
= the target row number
target
= the target field/column number
nfv
= the info that i want to place into the target field
I istenen satırı almak kadar sayacını kullanarak Im $i
saymak. Benim istenen alan / hedef almak til sonra sayaç $j
saymak. Şimdiye kadar bu bana geçersiz implode argümanlar için bir hata veriyor, ya da herhangi bir veri kaydetmek değildir. Im emin yanlış bir kaç şey vardır, ama sinirli ve kayıp duyuyorum.
<?
$row = $_GET['row'];
$nfv = $_GET['nfv'];
$target = $_GET['target'];
$data = file_get_contents("temp.php");
$csvpre = explode("###", $data);
$i = 0;
$j = 0;
foreach ( $csvpre AS $key => $value){
$i++;
if($i == $row){
$info = explode("%%", $value);
foreach ( $info as $key => $value ){
$j++;
if($j == "$target"){
$value = $nfv;
}
}
$csvpre[$key] = implode("%%", $info);
}
}
$save = implode("###", $csvpre);
$fh = fopen("temp.php", 'w') or die("can't open file");
fwrite($fh, $save);
fclose($fh);
header("Location: data.php");
?>
Birisi bu neyin yanlış olduğunu söyleyebilir, onun değil çalışma neden bu kadar i öğrenebilirsiniz ayrıntılı olarak lütfen.
İşte test için bazı örnek csv veri
1%%4%%Team%%40%%75###2%%4%%Individual%%15%%35###3%%4%%Stunt Group%%50%%150###4%%4%%Coed Partner Stunt%%50%%150###5%%4%%Mascot%%15%%35###6%%8%%Team%%40%%75###7%%8%%Stunt Group%%50%%150###8%%8%%Coed Partner Stunt%%50%%150###9%%3%%Team%%40%%75###10%%1%%Team%%40%%75###11%%1%%Solo%%15%%35###12%%1%%Duet%%50%%150###13%%2%%Team%%50%%50###14%%2%%Solo%%15%%35###15%%2%%Duet%%50%%150###16%%8%%Individual%%15%%35###