Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Jak zastąpić taki ciąg znaków? {x}
k0b3
post
Post #1





Grupa: Zarejestrowani
Postów: 138
Pomógł: 0
Dołączył: 1.08.2006
Skąd: Kielce

Ostrzeżenie: (0%)
-----


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ź
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




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ś?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
no_face
post
Post #3





Grupa: Zarejestrowani
Postów: 346
Pomógł: 23
Dołączył: 28.11.2004

Ostrzeżenie: (0%)
-----


W str_replace zwyczajnie: '{1}'

W preg_replace "\{1\}" nie wspominajac o delimeterach.

Ten post edytował no_face 17.07.2009, 21:16:02
Go to the top of the page
+Quote Post
mpps
post
Post #4





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 14.03.2003
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


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?


--------------------
www.mpps.pl
park maszynowy: apache 2.2.22 | php 5.4.0 | MySQL 5.0.10 | phpMyAdmin 3.5.0 | notepad ++ | pilsner urquell
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 18:49