WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 09.02.2005, 19:48   #1
AlexanderFX
Veteran
 
Registriert seit: 23.01.2003
Alter: 39
Beiträge: 224


AlexanderFX eine Nachricht über ICQ schicken
Standard php schreibweise

hallo zusammen
ich hab da mal ein frage an die php programmierer bzw beutzer und zwar wie ihr euren quelltext gesteltet.
einfaches beispiel:
Methode1:
PHP-Code:
<td><?php echo $bla?><td>
oder
Methode2
PHP-Code:
<?php echo "<td> $bla <td>"?>
quasi beim ersten nur die variablen mit php tag ausgeben und methode 2 die ganze struktur in echos.
ich beforzuge methode 1 da ich dort viel mehr überblick über design und ähnliches habe .. jedoch lass ich mich gerne belehren..

Welche Methode findet ihr persönlich besser und warum findet ihr das?

mfg alex
AlexanderFX ist offline   Mit Zitat antworten
Alt 09.02.2005, 21:23   #2
FordPrefect
Veteran
 
Benutzerbild von FordPrefect
 
Registriert seit: 06.09.2002
Ort: Rottenmann
Alter: 59
Beiträge: 425


FordPrefect eine Nachricht über ICQ schicken
Standard

Ich würde diese Version vorziehen
Code:
<hrml><head></head><body>
......
<td>%text%</td>
.......
</body>
[php]
class Layout{
var $strTemplate;
function Load($file_path){ // Lädt Template-Datei und speichert sie ab
$fp = fopen($file_path,"r"); // Datei zum Lesen öffnen
$this->strTemplate = fread($fp,filesize($file_path)); // und einlesen
fclose($fp); // Danach den File-Stream wieder schließen
}
function Replace($needle,$replacement){ // ersetzt $needle durch $replacement
$this->strTemplate = str_replace("%".$needle."%",$replacement,$this->strTemplate);
}
function Display(){ // gibt Template aus
echo $this->strTemplate;
}
}
$oben = new Layout();
$oben->Load("testtemp.html");
$oben->Replace("text","bla");
?>
____________________________________
Im Grunde will der Mensch nur eins:
Spass haben, glücklich sein und die Zeit so fröhlich wie möglich miteinader zu verbringen. Dafür verzichtet er gerne auf alles andere.
---------------------------------------
Unser Motto:
Es ist noch kein Meister vom Himmel gefallen, dafür aber jede Menge Nieten
Admiral James T. Kirk
----------------------------------------
Ich kommuniziere also mach ich mich verdächtig
----------------------------------------
FordPrefect ist offline   Mit Zitat antworten
Alt 09.02.2005, 21:39   #3
awebs
Jr. Member
 
Registriert seit: 01.06.2003
Beiträge: 99


Standard Re: php schreibweise

Zitat:
Original geschrieben von AlexanderFX

Methode1:
PHP-Code:
<td><?php echo $bla?><td>
oder
Methode2
PHP-Code:
<?php echo "<td> $bla <td>"?>
[/b]
Wenns mehrere Variablen sind die man im HTML ausgeben möchte

würd ichs so schreiben

PHP-Code:
<td><?=$bla?><td>
<td><?=$bla1?><td>
____________________________________
--
Austrian WebServices
http://www.awebs.at
lueger@awebs.at
awebs ist offline   Mit Zitat antworten
Alt 09.02.2005, 22:18   #4
AlexanderFX
Veteran
 
Registriert seit: 23.01.2003
Alter: 39
Beiträge: 224


AlexanderFX eine Nachricht über ICQ schicken
Standard

Zitat:
Original geschrieben von FellnerPeter
Ich würde diese Version vorziehen
Code:
<hrml><head></head><body>
......
<td>%text%</td>
.......
</body>
class Layout{
var $strTemplate;
function Load($file_path){ // Lädt Template-Datei und speichert sie ab
$fp = fopen($file_path,"r"); // Datei zum Lesen öffnen
$this->strTemplate = fread($fp,filesize($file_path)); // und einlesen
fclose($fp); // Danach den File-Stream wieder schließen
}
function Replace($needle,$replacement){ // ersetzt $needle durch $replacement
$this->strTemplate = str_replace("%".$needle."%",$replacement,$this->strTemplate);
}
function Display(){ // gibt Template aus
echo $this->strTemplate;
}
}
$oben = new Layout();
$oben->Load("testtemp.html");
$oben->Replace("text","bla");
?>
hast du da mehr informationen
der weg würd mich mal interresieren
kannst du mir das mal ab dem funktion replace bis $oben->Replace("text","bla"); etwas näher erleutern
wäre nett von dir

Zitat:
Original geschrieben von awebs
Wenns mehrere Variablen sind die man im HTML ausgeben möchte

würd ichs so schreiben

PHP-Code:
<td><?=$bla?><td>
<td><?=$bla1?><td>
das is mir auch neu .. wenn ich das mit dem <?=$bla ?> schreibe erspaar ich mir das echo oder wie ?
und was ist mit ;

na schau da lern ich wieder was dazu =D

danke im vorraus
mfg
alex
AlexanderFX ist offline   Mit Zitat antworten
Alt 09.02.2005, 23:07   #5
ruprecht69
Jr. Member
 
Registriert seit: 22.05.2003
Beiträge: 87


Standard

Zitat:
Original geschrieben von AlexanderFX
hast du da mehr informationen
der weg würd mich mal interresieren
kannst du mir das mal ab dem funktion replace bis $oben->Replace("text","bla"); etwas näher erleutern
wäre nett von dir

das is mir auch neu .. wenn ich das mit dem <?=$bla ?> schreibe erspaar ich mir das echo oder wie ?
und was ist mit ;

na schau da lern ich wieder was dazu =D

danke im vorraus
mfg
alex
ad <?= siehe http://at.php.net/manual/de/function.echo.php

Um den Code zu verstehen würde ich auch obige Seite besuchen.

Für die Funktion str_replace: http://at.php.net/manual/de/function.str-replace.php
Für OO-PHP Programmierung: http://at.php.net/manual/de/language.oop.php

Das ganze ist eine einfache Template-Engine und der Code ist wirklich nicht schwer zu verstehen (bis auf die Ausnahme, dass die Methode Display nicht genutzt wird und du demnach nix sehen wirst ). Das ganze gibt's auch komplizierter mit Caching etc. Eine gute ist zB. http://smarty.php.net/. Man muss ja nicht das Rad mehrmals erfinden - aber für einfache Zwecke reichen die paar Zeilen vollauf.
ruprecht69 ist offline   Mit Zitat antworten
Alt 09.02.2005, 23:30   #6
AlexanderFX
Veteran
 
Registriert seit: 23.01.2003
Alter: 39
Beiträge: 224


AlexanderFX eine Nachricht über ICQ schicken
Standard

ein paar fragen hätt ich dann doch noch =D
das $this bezieht sich auf die geöffnete seite?
warum bracuh ich die variable oben?

steht dann statt %text% bla dort?

$oben = new Layout();
hier öffne ich die classe bzw mach ein objekt

$oben->Load("testtemp.html");
das is die seite die ich auslesen will

$oben->Replace("text","bla");
hier ersetze ich dann text mit bla

stimmt das so wie ich mir das da denke?

$this->strTemplate = str_replace("%".$needle."%",$replacement,$this->strTemplate);

das ersetzt mir %variable% mit dem wert von replacement .. was bewirkt mir das $this->strTemplate am ebde?

danke

mfg alex
AlexanderFX ist offline   Mit Zitat antworten
Alt 09.02.2005, 23:55   #7
FordPrefect
Veteran
 
Benutzerbild von FordPrefect
 
Registriert seit: 06.09.2002
Ort: Rottenmann
Alter: 59
Beiträge: 425


FordPrefect eine Nachricht über ICQ schicken
Standard

@AlexanderFX
$this bezieht sich auf das aktuelle File.
In $strTemplate wird das File reingeschrieben.
Zitat:
$oben = new Layout();
hier öffne ich die classe bzw mach ein objekt
Ja
Zitat:
$oben->Load("testtemp.html");
das is die seite die ich auslesen will
auch ja
Zitat:
$oben->Replace("text","bla");
hier ersetze ich dann text mit bla
auch ja
[quote]mixed str_replace ( mixed search, mixed replace, mixed subject)
oder
$bodytag = str_replace("%body%", "black", "<body text=%body%>");
[/QOUTE]
Das $this->strTemplate am Ende, gibt die zeichenkette an, die geändert wird, also das Template.
Und sry, wie mein Vorposter schon geschrieben hat fehlt hier noch diese Zeile
PHP-Code:
$oben->Display(); 
Damit man das ganze auch sieht
____________________________________
Im Grunde will der Mensch nur eins:
Spass haben, glücklich sein und die Zeit so fröhlich wie möglich miteinader zu verbringen. Dafür verzichtet er gerne auf alles andere.
---------------------------------------
Unser Motto:
Es ist noch kein Meister vom Himmel gefallen, dafür aber jede Menge Nieten
Admiral James T. Kirk
----------------------------------------
Ich kommuniziere also mach ich mich verdächtig
----------------------------------------
FordPrefect ist offline   Mit Zitat antworten
Alt 09.02.2005, 23:58   #8
FordPrefect
Veteran
 
Benutzerbild von FordPrefect
 
Registriert seit: 06.09.2002
Ort: Rottenmann
Alter: 59
Beiträge: 425


FordPrefect eine Nachricht über ICQ schicken
Standard

Hier ist noch ein Link wo es meiner Meinung nach ganz gut erklärt wird
http://www.yubb.de/artikel492.html
lg
Peter
____________________________________
Im Grunde will der Mensch nur eins:
Spass haben, glücklich sein und die Zeit so fröhlich wie möglich miteinader zu verbringen. Dafür verzichtet er gerne auf alles andere.
---------------------------------------
Unser Motto:
Es ist noch kein Meister vom Himmel gefallen, dafür aber jede Menge Nieten
Admiral James T. Kirk
----------------------------------------
Ich kommuniziere also mach ich mich verdächtig
----------------------------------------
FordPrefect ist offline   Mit Zitat antworten
Alt 10.02.2005, 00:13   #9
AlexanderFX
Veteran
 
Registriert seit: 23.01.2003
Alter: 39
Beiträge: 224


AlexanderFX eine Nachricht über ICQ schicken
Standard

werd ich mir anschaun
vielen dank nochmal
mfg alex
AlexanderFX ist offline   Mit Zitat antworten
Alt 10.02.2005, 08:08   #10
T.dot
Master
 
Registriert seit: 13.08.2003
Beiträge: 624


Standard

Wenn man schon mit Templates arbeitet, würde ich gleich Smarty als Template-Enginge vorschlagen (http://smarty.php.net).

Biete einige interessante Funktionen fürs durchlaufen von Arrays mit Schleifen (auch verschachelt), Abfragen der Variablenwerte, etc.

Du kannst auch zb. ein Header und ein Footer Template basteln und dieses jeweils in den Templates einfügen.

Gibts auch ein sehr ausführliches deutsches Manual und ein brauchbares Forum dafür.

Du schreibst in der Template dann nur mehr reinen HTML Code und fügst mit {$Varname} die Variablen ein. In PHP kommt der ganze "Programmier"code rein und du übergibst die Variablen dann mit $smarty->assign("Varname",$Varname)

Für mehr Informationen stehe ich gerne zur Verfügung.

mfg Thomas
T.dot ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:15 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag