Offtopic
palicora Hi, also http://www.nvidia.d...
Nicht eingeloggt

Registrieren
Login

pabatribick
Neuling

- 12.03.09 16:34 Uhr
Hallo,

ich bin gerade am machen eines template-systems.

Nures gibt da probleme. PHP lädt die datei nicht richtig, aber ein fehler kommt auch nicht.

Hier einmal der class code:

Code:
<?php
class tpl {
var 
$tpl_file;
var 
$error;
var 
$content;
function 
tpl($file$error "Fehler!") {
$tpl->tpl_file $file;
$tpl->error $error;
$tpl->content "";
}
function 
readtemplate() {
$file = @fopen($tpl->tpl_file"r");
if(!
$file) {
echo 
$tpl->error;
}
else {
while(!
feof($file)) {
$tplopen fgets($file4096);
$tpl->content .= $tplopen;
}
}
}
function 
replace($title$value) {
$tpl->content str_replace("{ " $title " }"$value$tpl->content);
}
function 
parse() {
echo 
$tpl->content;
}
}
?>


Bitte um hilfe :D


Grüße, Patrick ;)
Ti-Systems
Ehrenmitglied

- 12.03.09 16:57 Uhr
Hallo,

Wenn du eine Eigenschaft bzw. eine Methode in einer Klasse aufrufen willst, welche von derselben Klasse sind, geht das nicht mit (in deinem Fall) $tpl->...
Dazu ist die Variable $this da. Du kannst das dann z.B. so machen: $this->tpl_file

Und prüfe mal, ob die Datei auch wirklich existiert, welche du einbinden willst.
Dies kannst du mir file_exists() tun.

mfg Timo

wccw
Ehrenmitglied

- 12.03.09 17:21 Uhr
Bevor Du dich mit Klassen auseinandersetzt, solltest Du erstmal was darüber wissen!
Guck dir bei php.net o.Ä. Seiten, die klassen und aufbauten an.
Sowas mit der $this-Variable, lernt man als allererstes!


file_exists() ist Bullshit, benutz stattdessen is_file() o.Ä. um zu prüfen.


Ich diskutiere nicht mit Idioten, die ziehen mich sonst auf Ihr Niveau hinunter und schlagen mich dort dann mit Erfahrung.
Ein völlig Depressiver Pyro.
Ti-Systems
Ehrenmitglied

- 12.03.09 17:24 Uhr
Hallo,

So ist es wccw.
Aber nur weil du is_file() benutzt, ist file_exists noch lange kein Bullshit!
Oder warum sollte es einen sein?!:roll:

mfg Timo

wccw
Ehrenmitglied

- 12.03.09 17:40 Uhr
Die Funktion file_exists verbirgt was in sich, nur weiß Ich nicht mehr was.
Auf php.net selbst hatte Ich mal was darüber gelesen...
Wenn Ich diese Seite noch mal finden sollte, werde Ich sie hier posten.

Es wird auf jeden fall zu anderen Funktionen geraten auf der Seite.
Seit dem, benutze Ich diese Funktion auch nicht mehr.

is_file, include o.Ä. benutz Ich da lieber.


Ich diskutiere nicht mit Idioten, die ziehen mich sonst auf Ihr Niveau hinunter und schlagen mich dort dann mit Erfahrung.
Ein völlig Depressiver Pyro.
Ti-Systems
Ehrenmitglied

- 12.03.09 17:45 Uhr
Hallo,

Kann gut sein...
Es gibt viele solche Funktionen, welche man nicht (mehr) nutzen sollte.
OK, ich werde mich auch mal umsehen.

mfg Timo

Abgemeldet
- 12.03.09 19:13 Uhr
Hi, versuchs mal so:

Code:
<?php
class tpl {
var 
$tpl_file;
var 
$error;
var 
$content;

protected 
$title '';
protected 
$value '';

public [
b]function __construct[/b]($file$error "Fehler!"$value$title) {
$this->tpl_file $file;
$this->error $error;
$this->title $title;
$this->value $value;
$this->content "";
}
[
b]public[/b] function readtemplate() {
$file = @fopen($tpl->tpl_file"r");
if(!
$file) {
echo 
$his->error;
}
else {
while(!
feof($file)) {
$tplopen fgets($file4096);
$this->content .= $tplopen;
}
}
}
[
b]public[/b] function replace() {
$this->content str_replace("{ " $this->title " }"$this->value$this->content);
}
[
b]public[/b] function parse() {
echo 
$this->content;
}
}
?>


Ti-Systems
Ehrenmitglied

- 12.03.09 19:27 Uhr
Zitat von wmp:
Hi, versuchs mal so:

Code:
<?php
class tpl {
var 
$tpl_file;
var 
$error;
var 
$content;

protected 
$title '';
protected 
$value '';

function 
tpl($file$error "Fehler!"$value$title) {
$this->tpl_file $file;
$this->error $error;
$this->title $title;
$this->value $value;
$this->content "";
}
function 
readtemplate() {
$file = @fopen($tpl->tpl_file"r");
if(!
$file) {
echo 
$tpl->error;
}
else {
while(!
feof($file)) {
$tplopen fgets($file4096);
$this->content .= $tplopen;
}
}
}
function 
replace() {
$this->content str_replace("{ " $this->title " }"$this->value$this->content);
}
function 
parse() {
echo 
$this->content;
}
}
?>


Bist du ein Papagei oder so?!
Das sagte ich ja!
Und es hat übrigens geklappt bei ihm. Ich müsste nur noch closen - Tu es aber nicht, wegen dem is_file...

mfg Timo

wccw
Ehrenmitglied

- 12.03.09 20:19 Uhr
Zitat:
Es gibt viele solche Funktionen, welche man nicht (mehr) nutzen sollte.
Es wird lediglich von Veralteten Funktionen abgeraten, mehr aber auch nicht. ;)

Diese Seite find Ich einfach nicht mehr... :roll:
Wenn Ich sie doch irgendwann finden sollte, schreib Ich dir ne PN.


Zitat:
protected $title = '';
protected $value = '';

public function __construct($file, $error = "Fehler!", $value, $title) {
$this->tpl_file = $file;
$this->error = $error;
$this->title = $title;
$this->value = $value;
$this->content = "";
}

So, wmp - Ich hab keine Ahnung von dem ganzen, was bringt mir $value und $title ?
Und wofür steht dieses protected da oben vor den Variablen und wofür public vor der Funktion ?
Wofür schreibst Du $this->title = $title; und $this->value = $value; ?

Jetzt bin Ich doch mal gespannt.
Noch nicht Closen, bitte!


Ich diskutiere nicht mit Idioten, die ziehen mich sonst auf Ihr Niveau hinunter und schlagen mich dort dann mit Erfahrung.
Ein völlig Depressiver Pyro.
Abgemeldet
- 12.03.09 21:32 Uhr
Weil, man das eben macht :roll:

kann auch fragen warum machst du:

$this->base = $base;

in deiner class :roll:

Seite 1 von 2 - 1 2 Beitrag schreiben


©2011 Itschi.Net