php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 29.07.2004, 22:38  
Gast
 
Beiträge: n/a
Standard lange echo ausgabe

ich will eine ganze tabelle per php echo ausgeben zb.
PHP-Code:
echo "<table border="0" cellspacing="0" cellpadding="0" bgcolor=\"#CCCCCC\" bordercolor=\"#CCCC66\">\n";
echo
"<tr>"usw... 
folge davon -> meine tabelle läst sich nicht mehr so schön wie mit html berbeiten.

frage:

kann man zb. eine ganze html tabelle per echo ausgeben, ohne das man php in die tabelle schreiben muss.

lg andy[/php]
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 29.07.2004, 22:45  
Gast
 
Beiträge: n/a
Standard

kannst auch innerhalb eines php-skriptes folgendes machen:

Code:
?>
<table align='center' border='0'>
<tr>
...
...
<?php
ist allerdings nicht die feine englische...geht aber auch

greetings,
warl0rd
 
Alt 29.07.2004, 23:33  
Gast
 
Beiträge: n/a
Standard

Aber genau so wurde php konzipiert. Alles auserhalb eines php-Blocks wir wie-es-da-steht in den Ausgabestrom geschickt.
Das geht auch z.B. in Schleifenkonstrukten
PHP-Code:
<?php
$testdaten 
range('a','e');
?>
<html>
    <head>
        <title>...</title>
    </head>
    <body>
        <table>
        <?php foreach($testdaten as $i=>$d) { ?>

            <tr>
                <td><?php echo $i?></td>
                <td><?php echo $d?></td>
            </tr>
        <?php ?>

        </table>
    </body>
</html>
 
Alt 30.07.2004, 01:09  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Um die Durchmischung von Business- und Darstellungslogik zu trennen, verwendet man in der Regel Teplates, also HTML-Vorlagen bzw. Template-Engines, die die eruierten Werte in die Vorlagen einsetzen.

Mit Fast-Template sieht dann deine HTML-Tabelle etwa sow aus:
Code:
    
    <table>

    
    <tr>
    <td>{NUMBER}</td>
    <td>{BIG_NUMBER}</td>
    </tr>
    

    </table>
Siehe z.B. hier:
http://www.dclp-faq.de/q/q-stil-content-code.html

Basti
Basti ist offline  
Alt 30.07.2004, 03:07  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich kann da volker nur zustimmen.

@bbastix:
das prinzip ist löblich .. für einen anfänger aber sicherlich zunächst mal zu kompliziert.
imported_Ben ist offline  
Alt 30.07.2004, 10:10  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

...ich meine nicht. Klar, PHP wurde letztlich als HTML-Templatesprache konzipiert und die meisten Einsteiger werden wahrscheinlich auch zunächstmal mit 'eingebettetem' PHP anfangen, aber einfacher ist das doch nicht - im Gegenteil. Ich denke gerade Einsteiger sind oft mit diesen Mischungen aus PHP, (X)HTML und CSS überfordert. Wenn dann noch JavaScript dazukommt, geht dann garnichts mehr.

Da ist es vielfach einfacher, erstmal in PHP die Daten zu verarbeiten und für die Ausgabe vorzubereiten und Variablen dann einfach an die Template-Engine zu übergeben. Sicherlich ist die Syntax des Aufrufs von Objekt-Methoden für den Einsteiger erstmal Neuland, aber alleman einfacher zu erlernen, als irgendeinen PHP/HTML-Mix zu debuggen, oder?

Hier mal Code und Template mit Verwendung von Smarty
Code:
include('Smarty.class.php');
$smarty = new Smarty;
$smarty->assign('template-engines', array(
	array('name' => 'Smarty', 'href' => 'http://smarty.php.net/'),
	array('name' => 'IT[X]', 'href' => 'http://www.ulf-wendel.de/projekte/itx/index.php'),
	array('name' => 'FastTemplate', 'href' => 'http://www.thewebmasters.net/php/FastTemplate.phtml'),
	array('name' => 'PHPLib', 'href' => 'http://phplib.sourceforge.net/index.php3')
	));
$smarty->display('template-engine-overview.tpl');
...und das Template:
Code:
<table>
{section name=my_table loop=$template-engines}
   <tr bgcolor="{cycle values="#fff,#ccc"}">
      <td>{$template-engines[my_table].name}</td>
      <td>{$template-engines[my_table].href}</td>
   </tr>
{/section}
</table>
Und jetzt probier das mal ohne Template-Engine und dann versuch mich davon zu überzeugen, dass dein Code einfacher sei *g.

Basti
Basti ist offline  
Alt 30.07.2004, 10:20  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 2.150
Guradia befindet sich auf einem aufstrebenden Ast
Standard

My choice for tables:
http://pear.php.net/package/HTML_Table

(mir sind auch Templates noch zu viel Arbeit *cough* ^^)
Guradia ist offline  
Alt 30.07.2004, 11:02  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von bbastix
Und jetzt probier das mal ohne Template-Engine und dann versuch mich davon zu überzeugen, dass dein Code einfacher sei *g.
ich habe es verstanden. ist ja auch, wenn man die nötigen kenntnisse hat nicht wirklich schwer.
man muss sich nur eben mal damit beschäftigt haben und kenntnisse der OOP besitzen.

aber frag nicht mich, sondern den threaderöffner.

hey andy.
ist der code von bbastix für dich verständlicher als der von volker?

meiner ansicht nach eine rhetorische frage!
imported_Ben ist offline  
Alt 30.07.2004, 11:18  
Gast
 
Beiträge: n/a
Standard

Ich habe ja auch nichts gegen den Einsatz von templates.
Es gibt nur ein paar Gründe, die mich meistens davon abhalten, sie bei Einsteiger-Fragen zu erwähnen (es sei denn, sie zielen direkt auf eine Stärke von engine xyz ab)
- noch ein Interface/e Sprache
- ...das auch komplexere Konstrukte der zugrunde liegenden Sprache erfordert
- meistens nicht validierbare Transportform
- Trennung von Ursache und Wirkung
- die Diskussion über das template-System entbrennt

Nichts destotrotz mal eine template-freie Implementierung des Beispiels
PHP-Code:
<?php
$array 
= array(
        array(
'name' => 'Smarty''href' => 'http://smarty.php.net/'),
        array(
'name' => 'IT[X]''href' => 'http://www.ulf-wendel.de/projekte/itx/index.php'),
        array(
'name' => 'FastTemplate''href' => 'http://www.thewebmasters.net/php/FastTemplate.phtml'),
        array(
'name' => 'PHPLib''href' => 'http://phplib.sourceforge.net/index.php3')
    );
$bgColors = array('#fff','#ccc');
?>
<html><body><table>
    <?php foreach($array as $a) { array_push($bgColorsarray_shift($bgColors)); ?>
    <tr bgcolor="<?php echo $bgColors[0]; ?>">
        <td><?php echo $a['name']; ?></td>
        <td>[url="<?php echo $a['href']; ?>"]<?php echo $a['href']; ?>[/url]</td>
    </tr>
    <?php ?>
</table></body></html>
An dieser Stelle sehe ich noch nicht so große Unterschiede (und habe schon auf <?= ... ?> verzichtet); bis auf evtl. cycle values. Aber da schütteln Puristen eh' schon den Kopf
 
Alt 30.07.2004, 12:18  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

> An dieser Stelle sehe ich noch nicht so große Unterschiede

Nein?

Mir geht es hier auch nicht darum, einen Glaubenskrieg loszubrechen, welchen Weg ein Einsteiger 'zu gehen hat'.

Ich sehe, dass es erstmal quasi ein Umweg ist, dass man Variablen an eine assign-Methode schickt und hinterher erscheinen diese dann im Template und als Einsteiger kann man ja auch kaum nachvollziehen, was da zwischendrinnen passiert, aber wenn man einfach akzeptiert, das es funktioniert und dass man die Vars halt so und so übergibt, dann muss man nichts von OOP verstehen und gewöhnt sich gleich von Anfang an, PHP und HTML nicht durcheinanderzuschmeißen - denn das ist zwar ganz nett, das das geht, weil man damit eben ganz schnell mal eine Lösung für kleine Aufgaben hat, letztlich aber muss die Aufgabe schon sehr klein sein, dass der Schuß nicht nach hinten losgeht...

Ich meine, gerade, wenn die Frage ist, ob man eine Tabelle ausgeben kann, "ohne das man php in die tabelle schreiben muss", dann sind Templates der einzige Weg...

Basti

> und habe schon auf <?= ... ?> verzichtet

*Grusel ... bitte alle mal short_open_tag abschalten...
Basti ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
$error weiterleiten Benjamin PHP Tipps 2008 10 29.07.2008 11:59
Hash-Werte Raito PHP Tipps 2008 10 07.04.2008 15:47
Anfänger bittet um KleinLoginScriptPrüfung / PHP und MySql prinzli PHP Tipps 2008 10 08.11.2007 08:07
Textarea und &amp;gt; PHP-Fortgeschrittene 9 07.02.2006 00:34
Problem mit While-Schleife PHP Tipps 2007 5 27.12.2005 20:02
[Erledigt] Formular formatieren HTML, Usability und Barrierefreiheit 5 30.01.2005 13:45
guestbook problem #2 PHP Tipps 2005 7 04.01.2005 11:19
Echo ausgabe Zeitlich verzögern? medico HTML, Usability und Barrierefreiheit 14 03.01.2005 08:23
Partykalender, Probleme PHP Tipps 2004-2 6 26.12.2004 13:19
problem mit ausgabe bei einer "tmp"-table... nautiluS PHP Tipps 2004-2 0 20.12.2004 15:12
get und if funktion PHP Tipps 2004 14 23.09.2004 04:01
mysql Fehler - query was empty Anuschka Datenbanken 2 01.09.2004 00:28
Wo liegt der Fehler - Query was empty Anuschka PHP Tipps 2004 7 24.08.2004 02:59
Datenbankergebnis in Array und per Index darauf zugreifen PHP Tipps 2004 7 30.07.2004 18:39
[Erledigt] Datenübergabe PHP Tipps 2004 2 20.07.2004 19:06

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php echo html code, php ausgabestrom, ganze html in php nur mit ein echo, lange php scripts ausgabe, php längere html ausgabe, php ausgabe zu lang, php echo lan ge html texte, langer html code in php ausgeben, php echo langer html

Alle Zeitangaben in WEZ +2. Es ist jetzt 03:45 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.