Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: eval z treści
Forum PHP.pl > Forum > PHP
MWL
Witam, mam pewien problem. Chciałbym pobrać treść pliku inną metodą niż include ale jednocześnei umożliwić wykonywanie kodu. Napisałem więc taką klasę:
  1. <?php
  2. class tpl_controller {
  3.  
  4.  public function __construct($main_template) {
  5. $template = file_get_contents($main_template);
  6. $template = preg_replace_callback("#<?php(.*?)?>#", array("tpl_controller", "use_eval"), $template);
  7. echo $template;
  8.  }
  9.  
  10.  public function use_eval($eval) {
  11. $eval = eval($eval);
  12. return $eval;
  13.  }
  14.  
  15. }
  16. ?>

Jednak nie działa, ja nie mam pojęcia jak to naprawić, a na stronie pojawia sie pełno błędów E_NOTICE oraz jeden ciekawszy:

Non-static method tpl_controller::use_eval() cannot be called statically, assuming $this from compatible context tpl_controller

Mógłby mi ktoś pomóc?
.radex
  1. <?php
  2. public static function use_eval($eval) {
  3. $eval = eval($eval);
  4. return $eval;
  5.  }
  6. ?>
MWL
nie mogłeś od razu tongue.gif questionmark.gif
teraz pozostają błędy notice Array to string conversion
.radex
  1. <?php
  2. $eval = eval($eval[1]);
  3. ?>


Chyba, posprawdzaj sobie zawartość za pomocą var_dump
MWL
ok, wykonuję to i pojawia mi się baaardzo dziwny ciąg znaków

http://creafuture.com/vigil/cms/vgl_templa.../webschool/Moja stronaKolejna strona stworzona za pomocą Vigil CMS, tekst ten możesz zmienić w pliku konfiguracyjnym, lub w panelu administracyjnym.vgl_templates/themes/webschool/vgl_templates/themes/webschool/vgl_templates/themes/webschool/vgl_templates/themes/webschool/vgl_templates/themes/webschool/vgl_templates/themes/webschool/vgl_templates/themes/webschool/

część z nich pochodzi ze stałych wykonanych w eval
.radex
podaj więcej kodu...

Może spróbuj zlokalizować miejsce, gdzie to wywala.
MWL
  1. <?php
  2. class tpl_controller {
  3.  
  4.  public function __construct($main_template) {
  5. $template = file_get_contents($main_template);
  6. $template = preg_replace_callback("#<?php(.*?)?>#si", array("self", "use_eval"), $template);
  7. echo $template;
  8.  }
  9.  
  10.  public static function use_eval($eval) {
  11. return eval($eval[1]);
  12.  }
  13.  
  14. }


ale nie wiem czy to coś da tongue.gif
adres wykonywanego kodu http://www.creafuture.com/vigil/cms/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.