Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> preg_replace_callback
Jarod
post
Post #1





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

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


Natrafiem w manualu na taką funkcję jak preg_replace_callback. Wiem do czego to służy ale nie rozumiem poniższego wywołania

  1. <?php
  2. preg_replace_callback("|(d{2}/d{2}/)(d{4})|", array( __CLASS__, 'getRecord' ), $text);
  3. ?>


Wiem, że __CLASS__ zwraca nazwę bieżącej klasy ale nie rozumiem co daje:
  1. <?php
  2. array( __CLASS__, 'getRecord' )
  3. ?>


Może mi ktoś to wytłumaczyć?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Jarod
post
Post #2





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

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


Dobra załapałem. Tylko, że mam inny problem a nie chcę zakładać osobnego wątku.


Przypadek 1: Chciałbym znaleźć w ciągu tekstowym sad*.txtaaa ciąg *.txt i zamienić go na *.TXT. Problem w tym, że w funkcji show wogóle nie mogę się dostać do odnalezionego wzoru.
return $matches[0]; a return $matches[1].'-'.$matches[2]; dają inne wyniki.

Z godnie z tym co napisali w manualu to element $matches[0] powinien zawierać
Cytat
sad*.txtaaa
, element $matches[1] powinien zawierać
Cytat
sad
, element $matches[2] powinien zawierać *.txt a element $matches[3] powinien zawierać
Cytat
aaa
. Czyli w funkcji show powinienem dać zapis return strtoupper($matches[2]). Niestety to nie działa. Jak się dostać do dopasowanego wzorca?

  1. <?php
  2. function show($matches)
  3. {
  4. return $matches[0];
  5. }
  6.  
  7. $lanuch = 'sad*.txtaaa';
  8. $wzor = '@*.txt@';
  9.  
  10. echo preg_replace_callback($wzor, show, $lanuch );
  11. ?>
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: 14.10.2025 - 09:11