[PHP]Edytor plików


(Fajlip4) #1

Witam!

Znalazłem skrypt edycji pliku .xml z poziomu przeglądarki.

Wygląda on tak:

<?php


// zmiana zawartosci pliku

$edycja = $_REQUEST["edycja"];

if (isset($_POST["tekst"]) && file_exists($edycja)) {

$f = fopen($edycja, "w");

fputs($f, stripslashes($_POST["tekst"]));

fclose($f);

}


// umieszczenie pliku w formularzu

if ($edycja<>"" && file_exists($edycja)) {

echo "
 Edycja plik: $edycja";

echo '';

$f = fopen($edycja,"r");

while(!feof($f)) echo fread($f,1024);

fclose($f);

echo '';

}

?> [/code]




Edytuje on cały plik, a ja chce by zmieniał tylko sam tekst (omijał kod)

Na przykład: 



[b]1.Plik "plik.xml" przed edycją:[/b]

[code]Hahaha1 Hahaha2 Hahaha3
2.Edycja:29801przyklad.png


(Jacek705) #2

Musisz powyciągać z pliku dane, które chcesz edytować do zmiennych:

f = fopen($edycja,"r");

while(!feof($f)){

$linia=fgets($f);

if (preg_match('',$linia))

{

$name=trim(strip_tags($linia));

$linia=str_replace($name,'{NAME}',$linia);

}

elseif (preg_match('',$linia))

{

$desc=trim(strip_tags($linia));

$linia=str_replace($desc,'{DESC}',$linia);

}

elseif (preg_match('',$linia))

{

$title=trim(strip_tags($linia));

$linia=str_replace($title,'{TITLE}',$linia);

}

$plik.=$linia;

}

fclose($f);

Zamiast textarea wstawiasz 3x i wpisujesz w nie zmienne. do tego 4-ty z zawartością zmiennej $plik W skrypcie do którego wysyłane są dane przez POST łączysz wszystko razem:

$plik=str_replace('{NAME}',$name_z_input,$plik);

$plik=str_replace('{DESC}',$desc_z_input,$plik);

$plik=str_replace('{TITLE}',$title_z_input,$plik);

no a potem tylko zapisanie wszystkiego do pliku :slight_smile:

EDIT//Trochę zmodyfikowana wersja