Witajcie. Chciałbym zrobić coś takiego, że mam pliki .php z artykułami np. art1.php, art2.php itd oraz plik arttresc.html, o podobnej do tej strukturze:
Chciałbym by w pliku art1.php oraz art2.php itd. wstawiać w określone miejsce odwołania np. [art1title] tak, by treść tego była pobierana z pliku arttresc.html. Da się coś takiego wykonać?
Kolego. Chcesz zrobić nic innego, jak prosty system szablonów:) ja osobiście używam takiego kodu:
plik z klasą Template
class Template {
public $kod;
public $podmiana;
public $output;
public function __construct($plik){
$this->kod = file_get_contents("".$plik.".tpl"");
$this->podmiana = Array();
}
public function set($tag,$wartosc=''){
if (is_array($tag)) {
$this->podmiana = array_merge($this->podmiana, $tag);
} else if (!empty($wartosc)) {
$this->podmiana[$tag] = $wartosc;
}
}
public function compile(){
return preg_replace('/{%([^}]+)%}/e', '$this->podmiana["\\1"]', $this->kod);
}
public function draw(){
echo $this->compile();
}
}
przykładowy plik z rozszerzeniem .tpl
Błąd: {%errortext%}
[/code] i plik wykonujący PHP:
[code] //tutaj zrób include pliku z klasą template $error=new Template(“error”); //tworzysz nowy obiekt klasy Template i wczytujesz nazwę pliku bez rozszerzenia $error->set(‘errortext’,‘Lorem ipsum dolor…’); //tutaj wywołujesz akcję, co chcesz wstawić w zamian za {%errortext%} $error->compile(); //wykonanie podmiany $error->draw(); //wyrysowanie na ekran