Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Przekazywanie zmiennych przez preg_replace szwankuje
Forum PHP.pl > Forum > Przedszkole
Ziels
Witam,

taki kod:
  1. <?php
  2. function row_replace($arg){
  3.  
  4. $test = 1;
  5. if($arg == 'left'){
  6. $test = 'działa';
  7. return $test;
  8. }else{
  9. return $arg;
  10. }
  11. }
  12. $zmienna = "[table align='left']ppp[/table]";
  13. $bb2html = preg_replace("#[table align='(.*?)']ppp[/table]#si", row_replace( "1" ), $zmienna);  
  14. echo $bb2html;
  15. ?>

Zwraca 'left' zamiast 'działa' mimo że argument $arg jest równy 'left'. Czy wie ktoś może dlaczego tak się dzieje?
piotrekkr
arg jest rowny stringowi "\\1" a nie left;
zrob sobie takie cos :
  1. <?php
  2. function row_replace($arg){
  3. echo $arg;
  4. $test = 1;
  5. if($arg == 'left'){
  6. $test = 'działa';
  7. return $test;
  8. }else{
  9. return $arg;
  10. }
  11. }
  12. ?>
wtedy zobaczysz ze tak faktycznie jest

poza tym masz zly wzorzec.
Ziels
Tego bym się nie spodziewał, masz racje winksmiley.jpg

Fixed!
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.