![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 749 Pomógł: 37 Dołączył: 3.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam taki kod:
zamienia ona coś takiego Kod hfud ishu ihfds hfuis huif {YOUTUBE}tutaj link{/YOUTUBE} fhus hfui h na Kod hfud ishu ihfds hfuis huif tutaj link fhus hfui h Natomiast gdy chcę zrobić takie cos:
moim celem jest aby w miejsce {YOUTUBE}tutaj link{/YOUTUBE} funkcja zrobiła z linku object. Jednak gdy w funkcji wyświetle parametr który przekazuje to wyświetla \1. Dlaczego nie przekazuje linku? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Domyślam się, że chcesz, aby dane, które znalazło wyrażenie regularne, przeszły przez tajemniczą, niezdradzoną nam funkcję youtube(). Taki kod, jak podajesz, na pewno wtedy nie zadziała. Co oznacza zapis funkcja('foo')? Jest to ZAWSZE wywołanie funkcji funkcja w tym konkretnym miejscu dla tej konkretnej wartości. Ty zaś próbujesz użyć tego do przekazania informacji, że inna funkcja ma wywoływać Twoje youtube(), gdy coś tam się wydarzy - to nie ma prawa działać w tej postaci.
Masz dwie możliwości: 1. Użyć w wyrażeniu modyfikatora e i zapisać informację o funkcji, ale jako ciąg tekstowy. 2. Użyć funkcji preg_replace_callback, która jest właśnie stworzona do takich zabiegów. Przykłady i zasady jej użycia znajdziesz w dokumentacji: http://docs.php.net/manual/en/function.pre...ce-callback.php |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 14:08 |