[PHP] Odczyt elementów strony z pliku html


(arlid) #1

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:

[art1title] = 'Tytuł arta 1'

[art1tresc] = 'treść artykułu 1'


[art2title] = 'Tytuł arta 2'

[art3tresc] = 'treść artykułu 2'

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ć?


(ra-v) #2

file_get_contents('arttresc.html') - i przypisać do zmiennej (lub chyba do elementu tablicy w zmiennej) ??

Nie do końca rozumiem czy o to chodzi.


(arlid) #3

(mario@) #4

to co podał ra-v + http://php.net/manual/en/function.eval.php


(Sucat) #5

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["\`"]', $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

jakbyś czegoś nie rozumiał. Pisz :slight_smile: