Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak zastąpić taki ciąg znaków? {x}
Forum PHP.pl > Forum > Przedszkole
k0b3
Witam

Wciąż nie rozumiem zasady wpisywania tego w nawiasie w funkcjach:
preg_replace
lub
str_replace

jak podmienić taki ciąg znaków na coś innego: {1} lub {2}

dzięki za odpowiedź
erix
Cytat
jak podmienić taki ciąg znaków na coś innego: {1} lub {2}

A tak konkretniej? Czego nie rozumiesz? Konstruowania wzorca? Eksperymentowałeś już coś?
no_face
W str_replace zwyczajnie: '{1}'

W preg_replace "\{1\}" nie wspominajac o delimeterach.
mpps
W przykładach:
preg_replace -> http://pl2.php.net/manual/en/function.preg-replace.php
i
str_replace -> http://pl2.php.net/manual/en/function.str-replace.php
jest to znakomicie opisane:

preg_replace:
  1. <?php
  2. $string = 'April 15, 2003';
  3. $pattern = '/(w+) (d+), (d+)/i';
  4. $replacement = '${1}1,$3';
  5. echo preg_replace($pattern, $replacement, $string);
  6. ?>

w $replacement ${1} oznacza pierwszy element tablicy 3-elementowej (/(\w+) (\d+), (\d+)/)
Zauważ, że zapis elementów w $pattern dokładnie odpowiada zapisowi elementów w $string (spacja, przecinek).
Spróbuj pobawić się wymieniając jeden z elementów $replacement i zobacz, jaki da to efekt końcowy, np. zamień na to:
  1. <?php
  2. $replacement = '${3} aqq,$2';
  3. ?>


str_replace:
  1. <?php
  2. $template = "The {color} {object} is in {location}";
  3. $array = array(
  4.    '{object}'    => 'Ball',
  5.    '{color}'     => 'Red',
  6.    '{location}'  => 'The Playground',
  7. );
  8. foreach ($array as $search => $replace) {
  9.    $template = str_replace($search, $replace, $template);
  10. }
  11. print $template;
  12. ?>

Zastosowanie nawiasów klamrowych w tym wypadku służy tylko do wyróżnienia elementów źródła $template do podmiany na elementy z tablicy $array.
Czy na pewno chodzi Tobie o str_replace czy np. o ereg, gdzie nawiasy klamrowe mają zupełnie inne zastosowanie?
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.