php imploding geçersiz argüman

2 Cevap php

Aşağıdaki kodu çalışırken Im geçersiz argüman hatası alıyorum. Im, onu içeriye patlamak sonra, $info dizideki bir çizginin değerini değiştirmek, ana dizi çökmek, ve sonra o geldi geri bürünürler için bütün mesele kurtarmaya çalışıyor.

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

update below

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

Hedef i newfieldvalue veri ile güncellemek isteyen seçilen Row içindeki alandır.

2 Cevap

$ = Çöktüğünü ("# # #", $ presave) kaydetmek;

Bu noktada, $presave bir dizedir ve implode çalışmak için bir dizi olmalıdır. Eğer $ presave-değerlerini itmek bir dizi oluşturmak ve bu bir tane patlar.

$presave işlenen son satırı (yani bir dize) içerir ve implode bir dizi bekliyor. Orijinal dizideki geri hattı saklamak için, değiştirin:

$presave = implode("%%", $info);

için:

$csvpre[$key] = implode("%%", $info);

Ve bir dizeye bütün CSV dizi dönüştürmek, değiştirmek:

$save = implode("###", $presave);

için:

$save = implode("###", $csvpre);

Ve bir daha sorun:

if($i = $row){

olmalıdır:

if($i == $row){

Eğer değişkenleri karşılaştırmak istiyorum çünkü, devredemez $i.