Bir metin dosyasında metin değiştirme ile ilgili sorunlar

1 Cevap

Aşağıdaki scenarion sahiptir.

Her şey benim sayfa yüklendiğinde ben bir dosya oluşturun. Şimdi benim dosya içinde iki etiketleri vardır. {Tema} {/ tema} ve {düzen} {/ düzen}, şimdi her şey ben {} düzeni düzen {/ düzeni} ve {} tema tema {/ tema} ile etiketleri değiştirmek gerekir belli bir düzen veya tema seçin

Benim sorun olduğunu ben aşağıdaki kodu çalıştırdıktan sonra

if(!file_exists($_SESSION['file'])){
        $fh = fopen($_SESSION['file'],"w");
        fwrite($fh,"{theme}{/theme}\n");
        fwrite($fh,"{layout}{/layout}");
        fclose($fh);
    }

    $handle = fopen($_SESSION['file'],'r+');



if ($_REQUEST[theme]) {
        $theme = ($_REQUEST[theme]);
        //Replacing the theme bracket in the cache file for rememberence
        while($line=fgets($handle)){
            $line = preg_replace("/{theme}.*{\/theme}/","{theme}".$theme."{/theme}",$line);
            fwrite($handle, $line);
        }
}

Aşağıdaki gibi benim çıktı görünüyor

{theme}{/theme}
{theme}green{/theme}

Ve bu gibi bakmak gerekiyor

{theme}green{/theme}
{layout}layout1{/layout}

1 Cevap

Ben nadiren rasgele erişim dosya işlemi kullanın ama ben burada yanlış olabilir metin olarak okumak ve geri ti yazmak istiyorum. Ben gördüğünüz gibi ANCAK, ilk satır okumak (yani işaretçi ikinci satırın başında olduğu). Sonraki pozisyonu metni (ikinci satır) yerini böylece Sonra o dosyanın içine '{theme}green{/theme}' yazın.

(Veri küçük olduğu için) Bu durumda, daha iyi tutun dosya olsun. Dize olarak değiştirin ve geri yazmak.