Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 251 Pomógł: 34 Dołączył: 7.01.2010 Ostrzeżenie: (0%)
|
Witam. Problem dla mnie dość nietypowy. Otóż staram się napisać funkcję która zamieni podany ciąg znaków na następujacy:
Ciąg: abc[link]abcdef[/link]def Na: ab c[link]ab cd ef[/link]de f Wymyśliłem jak to zrobić, choć pewnie istnieje jakaś prostsza metoda. Otóż, aby moje rozwiązanie w ogóle działało muszę zastosować funkcję w taki sposób: gdzie divstr to funkcja obcinająca tekst do ciągów 2-znakowych. Moje pytanie: Czy umieszczanie funkcji w ten sposób jest w ogóle możliwe? Jeżeli nie, to prosiłbym o wskazówkę w jaki innych sposób rozwiązać ten problem. Czyli: nie ruszać samych znaczników phpBB, natomiast skracać tekst przed, pomiędzy i za nimi. Z góry dziękuję. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 251 Pomógł: 34 Dołączył: 7.01.2010 Ostrzeżenie: (0%)
|
Dla testowanego przykładu wyrażenie jest dobre, sprawdzałem Mają to być np [ b ], [ i ] (bez spacji) etc. Jednak co do samego problemu: Można stosować w taki sposób funkcje, czy nie?
Na stronie http://xrg.es można sprawdzić mój przykład Regular Expression: #(.*?)(\[[a-z]\])(.*?)(\[/[a-z]\])(.*?)#si String: aaa[ b ]bbbb[/ b ]ccc[ i ]ddd[/ i ]eee Wybrać preg_replace() i w polu Replacement wpisać $1$3 - te właśnie ciągi chcę objąć moją funkcją. Końcowy replacement, jaki ja chcę otrzymać to np. Problem w tym, że żaden z zapisów nie działa: ani divstr($1), ani divstr('$1') Pozdrawiam Ten post edytował DiH 18.02.2010, 15:22:58 |
|
|
|
DiH Użycie funkcji na danych wynikowych preg_replace 17.02.2010, 23:43:36
fifi209 Wyrażenie jest źle napisane, przykładowo podajesz ... 18.02.2010, 09:50:36
erix masz dwie opcje:
flaga /e, która powoduje wykonani... 18.02.2010, 15:34:36
DiH Czytając w manualu o preg_replace_callback natknął... 18.02.2010, 17:14:11 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 20:01 |