![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 602 Pomógł: 30 Dołączył: 1.08.2007 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam taki skrypt
Wszystko działa ładnie, tyle że zamiast Imię: Jan Nazwisko: Kowalski Wiek: 30 Wyświetla się Imię: $table['imie'] Nazwisko: $table['nazw'] Wiek: $table['wiek'] Jak wstawić tą zmienną do tekstu. Próbowałem na wiele sposobów i nieznalazłem rozwiązania |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
preg_replace_callback A tak swoją droga to wydaje mi się ze wystarczy str_replace. Ale oczywiście zależy od tego co chcesz z tym jeszcze robić
![]() @UP Taki mądry? To podaj rozwiązanie. Ten post edytował wookieb 27.08.2009, 18:30:18 -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 602 Pomógł: 30 Dołączył: 1.08.2007 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
O co chodzi z tym
Cytat @UP Taki mądry? To podaj rozwiązanie. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Jeden mądrala darł się o podstawach ale już usunął post.
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 602 Pomógł: 30 Dołączył: 1.08.2007 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
Mój poprawiony skrypt wygląda tak
Ale wyświetla to Imię: .$table[$matches[1]]. Nazwisko: .$table[$matches[1]]. Wiek: .$table[$matches[1]] zaś
wyświetla Imię: Nazwisko: Wiek: |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
przeciez funkcja nie ma dostepu do $table... Wiec musisz dodac w srodek
-------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 602 Pomógł: 30 Dołączył: 1.08.2007 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
Właśnie zauważyłem, ale za późno dzięki masz 2 plusy
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
A ja sie zastanawiam czy nie prościej było zastosować zwykle łączenie?
Mniej problemów, wywoływania dodatkowych funkcji zamieniających... Dodatkowo trzeba uważać na to by ów ciąg, jaki jest podmieniany, nie pojawił się w treści. Osobiście uważam, że prostsze rozwiązanie jest nie tylko bezpieczniejsze pod tym względem, ale i szybsze w wykonaniu. Choć jeśli to pytanie było w celach edukacyjnych to czemu nie. Na normalnym serwerze jednak najprostsze rozwiązania są z reguły najlepsze i zazwyczaj najszybsze ![]() Ten post edytował thek 27.08.2009, 23:18:59 -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
-------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 602 Pomógł: 30 Dołączył: 1.08.2007 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
Ale ja to potrzebuję do większej ilości podmian, ujdednolicenie zapytań chcę osiągnąć. Thek, powiedzmy, że chcę tą funkcje uruchomić w kilku klasach, gdzie każda tabela($this->table[]) jest inna i za każdym wywołaniem muszę zastąpić innym elementem?
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Jeśli chcesz używać tego w kilku klasach, to może się okazać, że callbacki też będziesz musiał definiować dla każdej klasy osobno, zajrzyj do pierwszego komentarza w manualu php tyczącym preg_replace_callback.
Poza tym napisanie jednolitej metody, w momencie gdy masz różne klasy i różne elementy w nich to igranie nieco z ogniem bo musisz zawsze wiedzieć co jest na którym miejscu w tablicy wzorców i tablicy z danymi zastępczymi. Inaczej może się okazać, że pomyliłeś kolejność elementów Na pewno używanie wyrażeń regularnych jest wygodne, ale nie zawsze daje się zastosować jako uniwersalna metoda do wszystkiego. Ogólnie jestem za ich stosowaniem, ale dla części przypadków nie ma co uruchamiać wyrażeń regularnych jeśli użycie ich można zastąpić prostszymi metodami. Czasem właśnie zwykła konkatenacja lub wywołanie prostszego preg_replace z odpowiednimi parametrami daje to samo co preg_replace_callback. Kwestia rozsądku w stosowaniu i nie przesadzania z uwielbieniem dla wyrażeń. Nie zawsze jest sens je stosować i trzeba umieć balansować pomiędzy używaniem ich a czegoś prostszego. Tu już wychodzi wyczucie, doświadczenie i analizy czasowe ![]() Da dokładnie to samo co wyskoczenie z callbackiem. A jest na pewno szybsze, bo funkcja nie musi wyskakiwać z preg by się odwołać do zewnętrznej funkcji. Każde takie wyskoczenie to drobny narzut czasowy, który sam sobie fundujesz gratis. -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 602 Pomógł: 30 Dołączył: 1.08.2007 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
To tak nie będzie działało.
Mam jeszcze problem, wpisałem te funkcje w swoją klasę ale create_function niedziała poprawnie w innej fukcji tj. jakoś nie obsługuje ani $this-> xxx ani global xxxx;
Macie może jakieś rozwiązanie na ten problem? |
|
|
![]()
Post
#13
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
pamietaj ze to jest callback wiec moze byc tez cos takiego
Robisz dalej co chcesz. -------------------- |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 602 Pomógł: 30 Dołączył: 1.08.2007 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
Nie stosowałem callbacka na taką skalę i nie wiedziałem o takiej opcji masz + oczywiście
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 08:52 |