Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Preg_replace -> preg_replace_callback
Forum PHP.pl > Forum > PHP
ShutteR
Cześć. Jako że 'e' w preg_replace() umiera dlatego potrzebuję przepisać:
Kod
$source = preg_replace("#\[leech\s*=\s*(\S.+?)\s*\](.*?)\[\/leech\]#ie", "\$this->build_url(array('html' => '\\1', 'show' => '\\2', 'leech' => '1'))", $source);

na fukncję preg_replace_callback() aby usunąć błąd z 'e'.
Mógłby ktoś pomóc? Bo się trochę pogubiłem z tym sad.gif

Pozdrawiam
Aqu
W czym się pogubiłeś? Pokaż jak to przerobiłeś na callback.
ShutteR
Np takie coś:
  1. $source = preg_replace_callback("#\[url\](\S.+?)\[/url\]#ie", function ($this) {
  2. return $this->build_url(array('html' => '\\1', 'show' => '\\1'));
  3. }, $source);

ale nie działa.
Aqu
  1. $source = preg_replace_callback("#\[url\](\S.+?)\[/url\]#i", array($this, 'build_url'), $source);

i
  1. function build_url($params) {
  2. // $params[0] == \\0
  3. // $params[1] == \\1
  4. }
  5.  

ShutteR
  1. $source = preg_replace_callback("#\[url\](\S.+?)\[/url\]#i", function ($match) {
  2. return $this->build_url(array('html' => $match[1], 'show' => $match[1]));
  3. }, $source);


Bailando, dzięki!
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.