[PHP] podmienianie ciągu znaków

0

Czy jest możliwe zrobienie czegoś takiego:
Plik php otwiera plik np. plik1.txt przeczesuje go w poszukiwaniu ciągu znaków np. #F1, następnie zamienia go na ciąg znaków np. Jestem początkującym jeśli chodzi o PHP i zapisuje w drugim pliku plik2.txt.

Zrobiłem coś podobnego z formularzem html, gdzie podaje wartości a skrypt otwiera jeden plik o podmienia mi konkretne znaki i zapisuje wszystko do drugiego pliku, jak sie okazało działa to tylko jeśli podaje wartości o jednym znaku.

 <label>szerokosc:<input type="text" name="firstname" size="3" /></label><br />
 <label>dlugosc:<input type="text" name="lastname" size="3" /></label><br /><br /><br />
 
 <?

$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];

$szerokosc = "X";  // X - znak do podmiany w plik1.txt
$szerokosc_new = $firstname;

$dlugosc = "Z";  // Z - znak do podmiany w plik1.txt
$dlugosc_new = $lastname;

$tmpfile = fopen("plik1.txt", "rw");
$tekst = fread(fopen("plik1.txt", "rw"), filesize("plik1.txt"));

$tekst=strtr($tekst,$szerokosc,$szerokosc_new);
$tekst=strtr($tekst,$dlugosc,$dlugosc_new);
$tmpfile2=fopen("plik2.txt", "w");
fwrite($tmpfile2, $tekst);
fclose($tmpfile);
fclose($tmpfile2);

?>

Jest jeszcze druga sprawa jak zrobić też taką podmianę ciągów wybierając z listy checbox'ów:
np. wybieram <input type="checkbox" name="fotel1" value="fotelik" />alicja

otwieram plik1.txt podmieniam ciąg #F1 na fotelik i zapisuje wszystko w plik2.txt. 

Mam nadzieje że mniej więcej wiadomo o co chodzi  ;-P , liczę na Waszą pomoc  [!!!]
0
absolutly beginner napisał(a)

Czy jest możliwe zrobienie czegoś takiego:
Plik php otwiera plik np. plik1.txt przeczesuje go w poszukiwaniu ciągu znaków np. #F1, następnie zamienia go na ciąg znaków np. Jestem początkującym jeśli chodzi o PHP i zapisuje w drugim pliku plik2.txt.

oczywiście że jest :-)
http://pl2.php.net/manual/pl/function.str-replace.php

wczytujesz zawartość plików do zmiennej, przepuszczasz przez str_replace() i tak zmodyfikowany ciąg z powrotem zapisujesz do pliku.

0

OK, dzięki to już zrobiłem :-)

A co do drugiej części mojego problemu? Mam listę checbox'ów i chciałbym jeśli wybiorę jeden z nich to żeby też podmieniał mi się jakiś ciąg znaków z pliku1.txt na ciąg przypisany do tego checbox'a i żeby zapisywał do pliku2.txt. Gdzie wstawić ten nowy ciąg który ma zastąpić ciąg z plik1.txt. Czy można go ustawić jako value="ciąg" do checbox'a i później się jakoś do niego odwołać. Dodaję że chcę żeby każdy checbox odpowiadał za inny ciąg.

0

Zrobię to jednak inaczej ale jeszcze jeden problem mam:

// mam zmienne.. 
$fotel1 = "#fotel1";
$fotel1_new = "nowy fotel1";
//..i później je podmieniam..
$tekst=str_replace("#fotel1",$fotel1_new,$tekst);
//..następnie wszystko sobie zapisuje w drugim pliku

podmiana następuje i wszystko działa OK. Ale ja chce żeby dana podmiana następowała tylko po zaznaczeniu checkbox'a:

<input type="checkbox" name="fotel1" />fotel1<br />

Jak napisać warunek sprawdzający czy dany checkbox jest zaznaczony, przypominam że chcę mieć kilkanaście checbox'ów, i kilkanaście różnych ciągów do podmiany.
Dla przykładu:

<form method="post">
<input type="checkbox" name="fotel1" />fotel1<br />
<input type="checkbox" name="fotel2" />fotel2<br />
<input type="checkbox" name="foteln" />foteln<br />
<input type="submit" value="Zatwierdź" />
</form>

<?
$fotel1 = "#fotel1";
$fotel1_new = "nowy fotel1";
$fotel2 = "#fotel2";
$fotel2_new = "nowy fotel2";
$foteln = "#foteln";
$foteln_new = "nowy foteln";

$tekst=str_replace("#fotel1",$fotel1_new,$tekst);
$tekst=str_replace("#fotel2",$fotel2_new,$tekst);
$tekst=str_replace("#foteln",$foteln_new,$tekst);

?>
0

if (isset($_POST['fotel1']))

0

Dzięki, już wiem. Zrobiłem to tak:

if (isset($_POST['fotel1']) && $_POST['fotel1'] == 1){
   $fotel1 = "#fotel1";
   $fotel1_new = "nowy fotel";
};
0

Używaj <code class="php"> zamiast `` :)</code>

1 użytkowników online, w tym zalogowanych: 0, gości: 1