Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Zamienianie kodu na zmienna
Forum PHP.pl > Forum > Przedszkole
matiszostak
Witam winksmiley.jpg

Mam pytanie czy istnieje zamiana ciągu |>txt0<| żeby wpisał do niego wartość : $txt[0];
|>txt5<| = $txt[5];
|>txt7<| = $txt[7];

itd :
Plik z tekstami :
  1. ...
  2. // Komunikaty strony //
  3. $txt_e[1] = "Poważny błąd skryptu!!!<br>Prawdopodobnie nastąpił błąd serwera lub uległ on awari.";
  4. $txt_e[2] = "Błąd Skryptu/Serwera";
  5. $txt_e[3] = "Błąd bazy danych";
  6. $txt_e[4] = "Przerwa techniczna";
  7. $txt_e[5] = "Błąd logowania złe dane i/lub nie masz uprawnień";
  8. ...


Otwieranie plików :
  1. ...
  2. function error_msq($name){
  3. global $des_error,$txt,$txt_e;
  4.  
  5. if (file_exists($des_error)) {
  6. $handle = fopen($des_error, "r");
  7. $plik = fread($handle, filesize($des_error));
  8. } else {
  9. echo $txt_e[1];
  10. }
  11. $plik = str_replace( "|>copy<|", $txt[0], $plik);
  12. $plik = str_replace( "|>title<|", $txt_e[2], $plik);
  13. $plik = str_replace( "|>ptitle<|", $txt[1], $plik);
  14. $plik = str_replace( "|>name<|", $txt_e[3], $plik);
  15. $wartosc = str_replace("|>desc<|", $name, $plik);
  16.  
  17. echo $wartosc;
  18. }
  19. ...


plik tekstowy (Fragment kodu) :

  1. ...
  2. <h1 style="color:#aaaaaa;margin-top:30px;">|>title<|</h1>
  3. ...


Jak widać na przykładzie muszę każde osobno wpisywać a tak to tylko numerki i by było smile.gif
Patrzyłem różne funkcje *_replace ale nie rozumie jak trzeba się nimi posługiwać sciana.gif
wstydnis.gif
ayeo
Witam!

Sposób w jaki chcesz to rozwiązać jest niedobry. Jednak i tak zrobisz jak uważasz, a to rozwiązanie Twojego problemu:

  1. <?php
  2.  
  3. class ErrorCodeHandler
  4. {
  5. private $pattern = "#\|>txt([0-9]+)<\|#";
  6.  
  7. private $errors = array(
  8. 1 => "Poważny błąd skryptu!!!<br>Prawdopodobnie nastąpił błąd serwera lub uległ on awari.",
  9. 2 => "Błąd Skryptu/Serwera",
  10. 3 => "Błąd bazy danych",
  11. 4 => "Przerwa techniczna",
  12. 5 => "Błąd logowania złe dane i/lub nie masz uprawnień"
  13. );
  14.  
  15. private function replace( $no )
  16. {
  17. return $this->errors[$no[1]];
  18. }
  19.  
  20. public static function process( $text )
  21. {
  22. $handler = new self;
  23. return preg_replace_callback( $handler->pattern, array( $handler, "replace"), $text );
  24. }
  25. }
  26.  
  27. // użycie
  28. $sample = "To jest bezsensu |>txt2<| tralalala";
  29. var_dump( ErrorCodeHandler::process( $sample) );
  30.  
  31. ?>




Pozdrawiam!
matiszostak
Dzięki o to mi chodziło Nie wiedziałem jak to zrobić z tymi znakami i jak to powiązać smile.gif

Mam pytania :
1. Czy idzie usunąć string(240) " ... "
2. Jest kłopot bo mam pliki w różnych wersjach i jest trochę kłopotliwe, że trzeba w class`ie umieszczać

Na razie nie pisałem w takim stylu smile.gif Teraz tylko w funkcjach sobie pisze winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.