![]() |
![]() ![]() |
![]() |
![]()
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: 15 Pomógł: 2 Dołączył: 8.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
gdzie tu masz preg_replace?
zapodaj funkcję youtube() Ten post edytował youngCoder 8.02.2009, 20:51:55 |
|
|
![]()
Post
#3
|
|
![]() 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 -------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 749 Pomógł: 37 Dołączył: 3.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
potrzebuje żeby działało to tak:
znajduje w tekście wszystkie elementy typu {YOUTUBE}http://www.youtube.com/watch?v=Jkm86AfI48I&feature=rec-HM-r2{/YOUTUBE} i przekazywał do funkcji youtube($parametr): http://www.youtube.com/watch?v=Jkm86AfI48I...ature=rec-HM-r2 Potem w tekście zamiast {YOUTUBE}http://www.youtube.com/watch?v=Jkm86AfI48I&feature=rec-HM-r2{/YOUTUBE} w tekście żeby w te miejsca wstawiał wynik działania tej funkcji. Po prostu ta funkcja ma w miejsce {YOUTUBE}http://www.youtube.com/watch?v=Jkm86AfI48I&feature=rec-HM-r2{/YOUTUBE} wstawiać kod html filmiku (moja funkcja youtube generuje takowy z url). Jak takie coś zrobić? Próbowałem z tą funkcją preg_replace_callback, męczę się od wczoraj i nie działa mi to -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
preg_replace_callback przekaże Ci do youtube() tablicę z tym, co znalazł; musisz z niej sobie dopiero powybierać dane. Zadaj sobie pytanie: czy używasz youtube() jeszcze w jakimś innym miejscu? Jeśli nie, możesz spokojnie ją przerobić, by wybierała dane ze zwróconej tablicy, a jeśli tak, to napisz dodatkową nakładkę, która by to przepakowała. Przy Twoim zapytaniu URL powinien znajdować się pod indeksem 1, ale zawsze możesz sobie wyświetlić całość przy pomocy var_dump() i sprawdzić.
-------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 749 Pomógł: 37 Dołączył: 3.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
niestety taka linia:
zwraca mi taki błąd: Kod Warning: preg_replace_callback() [function.preg-replace-callback]: Delimiter must not be alphanumeric or backslash in C:\Documents and Settings\Administrator\Desktop\www\flyweb\butelka\funkcje\bbcode.php on line 68
-------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 226 Pomógł: 25 Dołączył: 4.07.2007 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Poczytaj o wyrażeniach regularnych ![]() -------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 2 Dołączył: 8.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
'/\{YOUTUBE\}(.*?)\{\/YOUTUBE\}/i'
Ten post edytował youngCoder 9.02.2009, 20:26:38 |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 749 Pomógł: 37 Dołączył: 3.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki bardzo
![]() ![]() Musze przyznać że wyrażenia regularne nie są moja mocną stroną ![]() -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 13:12 |