Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> funkcja w drugim argumencie preg_replace
Waldek_05
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 26.03.2005

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


Mam mały problem, którego rozwiązania znaleźć nie mogę. Otóż chcę, aby w funkcji preg_replace() wyszukany tekst zamieniał się na wielkie litery (przykładowo). Zrobiłem w tym celu wiele kombinacji, ta jest jakaś "ostatnia":
  1. <?php
  2.  
  3. echo preg_replace(&#092;"#([a-z])+#\",'strtoupper(\"1\")',\"134116adasdaaa134116\");
  4.  
  5. ?>

Jednakże to zwraca mi "134116\strtoupper("a")134116". Czy ktos mógłby mi pomóc rozwiązać ten problem?
Go to the top of the page
+Quote Post
hwao
post
Post #2


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Przykład 5. Using the 'e' modifier
  1. <?php
  2. preg_replace(&#092;"/(</?)(w+)([^>]*>)/e\",
  3.  &#092;"'1'.strtoupper('2').'3'\",
  4.  $html_body);
  5. ?>

This would capitalize all HTML tags in the input text.

Wiec

  1. <?php
  2. echo preg_replace(&#092;"#([a-z])+#\", \"' '.strtoupper('1').' '\",\"134116adasdaaa134116\");
  3. ?>
Go to the top of the page
+Quote Post
Waldek_05
post
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 26.03.2005

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


Teraz zostaje zwórcony tylko "134116a134116".

Wcześniej też tylko pierwsza litera była wyświetlana, ale jeżeli nawet (chociaż przecież plusik jest w odpowiednim miejscu) to powinno to być "A" a nie "a"...
Go to the top of the page
+Quote Post
hwao
post
Post #4


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




  1. <?php
  2.  
  3. $text = 'Jakis Ciag znakow i nie tylko 032432';
  4. echo strtoupper( $text ); 
  5.  
  6. ?>


a To nie dziala?
Go to the top of the page
+Quote Post
Waldek_05
post
Post #5





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 26.03.2005

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


Jasne że działa, to nie pozostawia żadnych wątpliwości. POwiedziałem w pierwszym poście, że tak funkcja to tylko tak dla przykładu...
Go to the top of the page
+Quote Post
hwao
post
Post #6


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




  1. <?php
  2.  
  3. function cos( $arg ) {
  4.  // nie wiem cyz nie ma 2giego parametu jeszcze
  5.  print_r( $arg );
  6.  return jakasFunkaja( $arg );
  7. }
  8.  
  9. $wejscie = preg_replace_callback( '#([a-z]+)#si', 'cos', $wejscie ); 
  10.  
  11. echo $wejscie;
  12.  
  13. ?>


Moze tak ;-) (nie testowane to moze dzialac roznie polecam
Go to the top of the page
+Quote Post
Waldek_05
post
Post #7





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 26.03.2005

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


No hwao...
Właśnie napisałem ten temat, aby takie pierdółki małe nie przesyłać do nowych funkcji.
Może w tych kodach co przepisywałeś, podejrzewam bez sprawdzenia, jest jakiś błąd, którego na pierwszy rzut oka się nie dostrzega...

edycja
Problem rozwiązany.
W swoim pierwszym poście wspomniałeś o "modifierze e", ale po wyrażeniu "więc" go nie użyłeś. Teraz tak to przeanalizowałem i wszystko działa. Dziękuje winksmiley.jpg.

Ten post edytował Waldek_05 8.04.2005, 14:36:58
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: 21.08.2025 - 17:45