Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [OOP, eval()] Przetworzenie pliku
Kikert
post 9.10.2010, 20:08:58
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 15.09.2008

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


Cześć,
musiałem zmierzyć się z następującym problemem:

Należy z pliku z przykładową treścią i zawartymi w niej statycznymi właściwościami obiektów (np. Config::$db_host) pobrać zawartość i zapisać ją do zmiennej z podmienionymi wartościami. Z niewiadomych przyczyn nie mogę podmienić wartości zmiennych.

Plik z treścią:
  1. Test Config::$db_host


Pobranie zawartości pliku (fragment klasy):
  1. public function read() {
  2.  
  3. @ $this->content = file_get_contents($this->path);
  4.  
  5. if (empty($this->content)) { Error::add('File -> read()  Nie mozna odczytac zawartosci pliku '.$this->path); }
  6.  
  7. return $this;
  8.  
  9. }


Próba przetworzenia zmiennych (fragment klasy):
  1. $cfile = new File(MAINPATH.'media'.PS.'includes'.PS.$this->params['inc'].'.php','r');
  2. $temp = $cfile->open()->read()->getContent();
  3. $temp = addslashes($temp);
  4. //print $temp;
  5. eval('print $temp;');
  6. //self::$component = eval("print \$temp");


Skrypt w obecnej postaci generuje tekst bez zmian względem pliku. Jakieś pomysły?

Z góry dzięki biggrin.gif
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
erix
post 9.10.2010, 21:20:20
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Fajnie, że nazwy metod cokolwiek mówią o tym, czego używasz.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Kikert
post 9.10.2010, 22:51:13
Post #3





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 15.09.2008

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


OK, najprościej:

Mam zapisać tekst z pliku do właściwości statycznej w klasie.

$temp = $cfile->open()->read()->getContent(); Ta linijka to pobranie treści pliku, nic się nie zmienia w tym miejscu.

Teraz chcę zapisać we właściwości statycznej self::$component ten tekst z podmienionymi wartościami. Jednakże, kiedy interpreter PHP zamienia właściwości statyczne z kodu (jak Config::$db_host), nie odbywa się to poprawnie - zamieniana jest tylko druga część (finalnie daje to Config::, gdyż nie zdeklarowano zmiennej $db_host).

Jak to ustawić w eval'u?
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: 24.07.2025 - 17:06