Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pominięcie pewnej części skryptu, Nie takie proste jak się wydaje
UDAT
post 29.05.2006, 12:36:50
Post #1





Grupa: Zarejestrowani
Postów: 442
Pomógł: 0
Dołączył: 27.12.2005

Ostrzeżenie: (0%)
-----


A więc jak w temacie: Jak pominąć wykonywania początku skryptu, jednocześnie pozwalając kompilatorowi sparsować pominiętą część pliku.
Bo gdy dam np.
  1. <?php
  2. if (false)
  3. {
  4.  class foo{}
  5. }
  6. ?>


To dostaje na wyjściu 52 klasy wbudowane, ale nie ma mojej :/ Niby można byłoby przejechać po pliku wczytując wszystko oprócz wywołań funkcji, ale chyba da się łatwiej.

Albo zastępczo może ktoś wie jak wczutac dla ReflectionAPI zadany plik, a nie obecny.

Ten post edytował UDAT 29.05.2006, 12:38:57
Go to the top of the page
+Quote Post
dr_bonzo
post 29.05.2006, 13:07:13
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Co ty kombinujesz?
Wstaw normalnie definicje klasy i nic sie nie stanie -- nie utworzy sie obiekt i zadna funkcja sie nie wywola.


Co chcesz osisagnac?


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
UDAT
post 29.05.2006, 13:52:43
Post #3





Grupa: Zarejestrowani
Postów: 442
Pomógł: 0
Dołączył: 27.12.2005

Ostrzeżenie: (0%)
-----


Bo niestety kod wejściowy może też zawierać coś takiego:
  1. <?php
  2. class foo{}
  3. echo 'costam';
  4. class foo2{}
  5. ?>


Co chce osiągnąć questionmark.gif
Muszę zrobić pobieranie danych za pomocą ReflectionApi ze skryptów (dowolnych).

EDIT:
Oczywiście może to być np. operacja na bazie, a modyfikacja danych nie wchodzi w grę

Ten post edytował UDAT 29.05.2006, 14:09:56
Go to the top of the page
+Quote Post
dr_bonzo
post 29.05.2006, 14:23:01
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


  1. <?php
  2. include
  3. ob_costam -- usuwajace bufor
  4. ?>


i operuj na Reflection


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
UDAT
post 29.05.2006, 14:52:21
Post #5





Grupa: Zarejestrowani
Postów: 442
Pomógł: 0
Dołączył: 27.12.2005

Ostrzeżenie: (0%)
-----


Nie wiem czy został zauważony mój dopisek:
Cytat
Oczywiście może to być np. operacja na bazie, a modyfikacja danych nie wchodzi w grę


Z tego co wiem połączenia do bazy danych nie są buforowane przez ob_start()
Go to the top of the page
+Quote Post
dr_bonzo
post 29.05.2006, 15:33:06
Post #6





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Cytat
Oczywiście może to być np. operacja na bazie, a modyfikacja danych nie wchodzi w grę


To juz chyba zaczynam rozumiec.


Przepusc kod przez wyrazenia regularne ktore zostawia TYLKO definicje klas i funkcji i dopiero to includuj i uzywaj na tym refleksji.

Nie powinenes miec kodu, typu

mysq_connect
i zaraz obok definicji klasy

w jednym pliku .


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
UDAT
post 29.05.2006, 16:20:47
Post #7





Grupa: Zarejestrowani
Postów: 442
Pomógł: 0
Dołączył: 27.12.2005

Ostrzeżenie: (0%)
-----


Cytat
Nie powinenes miec kodu, typu

mysq_connect
i zaraz obok definicji klasy

w jednym pliku .

To nie będą moje pliki, to zadanie z infy tongue.gif

Zrobię to zgodnie ze wskazółką, ale ...
Da się filtrować (modyfikować) kod includowany przed/w czasie includem questionmark.gif Coś jak ob_start() dla treści wysyłanej.
Go to the top of the page
+Quote Post
mike
post 29.05.2006, 16:24:57
Post #8





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Przecież nie musisz tych plików dołanczać.
Możesz wczytać ich zawartość jako string - file_get_contents()
Go to the top of the page
+Quote Post
dr_bonzo
post 29.05.2006, 16:47:07
Post #9





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


UDAT: napisz jeszcze raz od poczatku co masz zrobic i jakie pliki dostaniesz.

Cytat
Da się filtrować (modyfikować) kod includowany przed/w czasie includem questionmark.gif Coś jak ob_start() dla treści wysyłanej.

Przecez mozesz przefiltrowany plik zapisac pod inna nazwa i includowan, nie? smile.gif


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
UDAT
post 29.05.2006, 16:52:02
Post #10





Grupa: Zarejestrowani
Postów: 442
Pomógł: 0
Dołączył: 27.12.2005

Ostrzeżenie: (0%)
-----


Chyba coś nie kontaktuję rolleyes.gif
Wczytać to przez file_get_contents i potem puścić przez eval, czy jakoś załadować do ReflectionApi questionmark.gif

EDIT
Klasy ReflectionApi nie mają nic co wskazywałoby na wczytaniu z pliku.

Cytat
Przecez mozesz przefiltrowany plik zapisac pod inna nazwa i includowan, nie?

Tak chyba będzie najprościej.

Polecenie brzmi.

Wypisać do pliku XML dane dotyczące klas, funkcji, metd, stałych itd. mając dany katalog z skryptem php(skrypty mogą być dowolne).
Dane tzn. : parametry, typy, statyczność, finalność, dziedziczenie, krótki opis, zwracaną wartość.
Należy wykorzystać ReflectionAPI, SimpleXML i format komentarzy PHPDoc:

Ten post edytował UDAT 29.05.2006, 16:58:06
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.08.2025 - 22:31