Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kolejne zamienianie, Wyrażenia regularne
Ociu
post
Post #1





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Mam string typu
Kod
Ma?a  ?a k?t?
i tablicę:
  1. <?php
  2. $vars = array(
  3. 1 => 'm',
  4. 2 => 'm',
  5. 3 => 'o',
  6. 4 => 'a'
  7. );
  8. ?>


Chciałbym aby przelecieć to jakimś wyrażeniem( którego nie wiem jak zbudować ) aby będzie zamieniał po kolejne ? na literki z tablicy. Of course nr. pytajnika = numerkowi literki.

Ma ktoś jakieś pomysły jak to zrobić ?

z góry dziękuje.

pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Radarek
post
Post #2





Grupa: Zarejestrowani
Postów: 188
Pomógł: 0
Dołączył: 23.05.2005

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


Cytat(jaco @ 2006-01-24 08:49:10)
Mozliwe, ze to nie najprostrze rozwiazanie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Hehe, no nienajprostsze (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .

  1. <?php
  2. $vars = array(
  3. 1 => 'm',
  4. 2 => 'm',
  5. 3 => 'o',
  6. 4 => 'a'
  7. );
  8.  
  9. $x = 0;
  10.  
  11. $regex = "/(?<!\\\\)\\?/e";
  12. echo preg_replace($regex, '$vars[++$x];', 'Ma?a \? ?a k?t?\?');
  13.  
  14. ?>


Teraz trzeba pozamieniac wszystkie wystapienia \? na ?.

Z automatyczna zamiana:

  1. <?php
  2. $x = 0;
  3. $tekst = 'Ma?a \? ?a k?t?\?';
  4. $regex = "/(\\\\)?\\?/e";
  5. echo preg_replace($regex, ''\\0'=='\\?''?' : $vars[++$x]', $tekst);
  6. ?>


Twoje rozwiazanie nie dzialalo jesli pierwszym znakiem byl ? (nie byl podmieniany).
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 27.12.2025 - 00:43