Alex: Html-Code-Stücke in Variablen packen

Hallo Forumianer im neu eröffneten Forum!

Danke Stefan und Deinen Mitstreitern, das das Forum wieder lebt!
Darauf haben viele gewartet, wie man sieht sind die Produktiven und Destruktiven schon wieder "On Air"

Meine Frage an Euch:

Gibt es in PHP die Möglichkeit HTML-Code in eine Variable zupacken?

So wie in Perl:

$html_textbaustein = qq(

<table border="1" cellpadding="2" cellspacing="3">
<tr>
 <td>Hier steht der Text der oft verwendtet wird.</td>
 <td>Dadurch sollen Wiederholungen gespart werden</td>
 <td>und die Übersichtlichkeit verbessert werden.</td>
 <td>Das waren die hauptsächlichen Vorteile </td>
</tr>
</table>

);

Vielen Dank für Eure Hilfe

Servus Alex

PS.: Wie man Html-Code in PHP einbindet ist geläufig.

  1. Hi Alex,

    so gehts;

    $html_textbaustein = "?>

    <table border="1" cellpadding="2" cellspacing="3">
     <tr>
      <td>Hier steht der Text der oft verwendtet wird.</td>
      <td>Dadurch sollen Wiederholungen gespart werden</td>
      <td>und die Übersichtlichkeit verbessert werden.</td>
      <td>Das waren die hauptsächlichen Vorteile </td>
     </tr>
     </table>

    <?";

    Aber versuchs mal mit templates, udn trenne layout strickt vom programmcode ;-)

    MfG Olli

    1. Hi!

      Gehts nicht auch so:

      $html_textbaustein = '
       <table border="1" cellpadding="2" cellspacing="3">
       <tr>
        <td>Ich wollt ich wär eine Huhn</td>
        <td>Da hätt ich nix zu tun</td>
        <td>Ich legte täglich nur ein Ei</td>
        <td>Und sonntags auch mal zwei :-)</td>
       </tr>
       </table>
      ';

      Ist dann halt alles in einer Zeile, aber wenns stört kann man ja noch ein \n einbauen (Bin schon gespannt ob das neue script meine Zeilenschaltung checkt. Falls nicht, hier in Lautschrift: Bäcksläsch-Ennnn)

      lg bernhard

      1. Hi,
        ;

        Ist dann halt alles in einer Zeile, aber wenns stört kann man ja noch ein \n einbauen (Bin schon gespannt ob das neue script meine Zeilenschaltung checkt. Falls nicht, hier in Lautschrift: Bäcksläsch-Ennnn)

        Ja es geht auch so, nur sind da dann die \n's drin. es wude schonmal sowas gesichtet:
        $str.='<blabalbal>';
        $str.='<blabalbala>;

        was das bringen soll weiss ich grad nciht ;-)
        dann gibbet noch die von perl adaptierten heredocs:

        $str=<<<EOT
        blablabla
        sdf
        sfg
        sdfg
        EOT;

        Jan
        --

        1. Hi!

          Das besste und sinnvolste ist aber imemr noch alles ueber templates zu loesen udn keienrlei ausgaben im php code zu mahcne, oder html code im phpcode einzubinden;-)

          Olli

          1. Hi!

            Das besste und sinnvolste ist aber imemr noch alles ueber templates zu loesen udn keienrlei ausgaben im php code zu mahcne, oder html code im phpcode einzubinden;-)

            Wie meinst du das? Was willst du (wie) in Templates stecken? Sowas wie:

            $text = "<table><tr><td>$inhalt</td></tr></table>";

            und dann mit $inhalt="Hallo Bello" und echo $text ausgeben? Wenn ja, ist es doch irgendwie gegen den Zweck von PHP oder? Das gute daran, ist ja dass man es einfach mit <? in den HTML-Code einfügen kann, und nicht um sich vorher alle HTML-Codefragmente in mehrere Variablen ablegt, und die dann ausgibt.

            So würde ich es dann irgendwie so machen:

            <table>
             <tr>
              <td>
               <? echo $inhalt; ?>
              </td>
             </tr>
            </table>

            ... zumindest für grössere Konstrukte. Für kleinere (<p>, <i>, <b>) braucht man ja nicht gleich aus dem PHP-Block aussteigen, die würde ich dann schon in die Varaible reinpacken.

            Belehre mich falls ich da was falsch verstanden habe, denn ein PHP-Profi bin ich (noch ;-) keiner. Ich stell mir das halt bloss so vor!

            lg bernhard

            1. Hi!

              Nein, ich meine richtige Template Systeme, solche wie das von der phplib, oder welches ich besser fine ist Smarty (http://www.phpinsider.com/php/code/Smarty/).

              Ok, irgendwelche XML Fetischisten ;-) kommen jetzt an und jaulen was wie "xml + xslt ist eh viel besser" wenn sie meinen.. Dann sollen sie mir doch bitte mal den Vorteil genau erklaeren (und bitte nicht... "Wenn du xml hast, kanst du daraus jedes andere Forma machen." Toll, ich brauchirgendwie doch nur HTML...), und wenns geht gleich mit nem umfangreichen Beispiel wie ich damit z.b. ohne grosse probleme ein array mit 30 elementen darstellen kann... ;-)

              Olli

              1. Hi!

                Ok, irgendwelche XML Fetischisten ;-) kommen jetzt an und jaulen was wie "xml + xslt ist eh viel besser" wenn sie meinen.

                Ja, meine ich :o) Du hast ins schwarze getroffen! Ich plane nämlich gerade ne Seite die auf XML basiert, und ich verwende dazu die php-Sablotron extensionÚ:'šìÜÖõ-´·qbns XSL-Transformator ;-)

                Dann sollen sie mir doch bitte mal den Vorteil genau erklaeren (und bitte nicht... "Wenn du xml hast, kanst du daraus jedes andere Forma machen." Toll, ich brauchirgendwie doch nur HTML...),

                Bei uns wird ein und das selbe Dokument derzeit xy mal abgetippt, da es in xy verschiedenen Versionen benötigt wird: eine flotte zum Verschicken(Flugblatt), eine etwas feschere Version für den Angebotskatalog, eine für die Homepage (html) und eine zum Runterladen und ausdrucken (pdf), dann ev. später eine wap-version, eine text-only, .... ! Da liegt doch der Gedanke an XML nahe oder? Und gottseidank geht das mit php ziemlich einfach!

                lg bernhard

                PS: Wenn jemand von euch nen Provider mir sagen kannt, der den Sablotron auch unterstützt, dann schreibt mir bitte ;-)

            2. Hi,

              und dann mit $inhalt="Hallo Bello" und echo $text
              ausgeben?

              Nein. Eher z. B. in einer externen Datei

              <table>
               <tr>
                <td>
                 [inhalt]
                </td>
               </tr>
              </table>

              Wenn ja, ist es doch irgendwie gegen den Zweck von
              PHP oder?

              Eher Unsinn :-)
              Ich weiss, dass PHP sehr dazu verleitet, Ausgabe und
              Daten miteinander zu vermischen, aber das heisst nicht,
              das es gut ist - genau so, wie es nicht gut ist, in
              perl absichtlich kryptisch zu schreiben (obwohl es
              beileibe geht ;-)

              Gruss,
               Christian
               http://wwwtech.de

        2. Hi,
          ;

          Ist dann halt alles in einer Zeile, aber wenns stört kann man ja noch ein \n einbauen (Bin schon gespannt ob das neue script meine Zeilenschaltung checkt. Falls nicht, hier in Lautschrift: Bäcksläsch-Ennnn)

          Ja es geht auch so, nur sind da dann die \n's drin. es wude schonmal sowas gesichtet:
          $str.='<blabalbal>';
          $str.='<blabalbala>;

          was das bringen soll weiss ich grad nciht ;-)
          dann gibbet noch die von perl adaptierten heredocs:

          $str=<<<EOT
          blablabla
          sdf
          sfg
          sdfg
          EOT;

          Jan

          Hi Jan,

          diese Möglichkeit der "Hierhunde" ist mir von Perl bekannt, läuft bei mir nicht mit PHP3 - man kann sich das escapen sparen. Ist es erst in PHP4 integriert?

          Servus Alex

          1. Hi,

            diese Möglichkeit der "Hierhunde"

            Hunde? ;-)
            Hiere-Dokumente, wenn schon deutsch :-

            ist mir von Perl bekannt, läuft bei mir nicht mit
            PHP3 - man kann sich das escapen sparen. Ist es erst
            in PHP4 integriert?

            Jap.
            http://de.php.net/manual/en/language.types.string.php: Note:  Here doc support was added in PHP 4.

            Gruss,
             Christian
             http://wwwtech.de

      2. Hi!

        Gehts nicht auch so:

        $html_textbaustein = '
        <table border="1" cellpadding="2" cellspacing="3">
        <tr>
          <td>Ich wollt ich wär eine Huhn</td>
          <td>Da hätt ich nix zu tun</td>
          <td>Ich legte täglich nur ein Ei</td>
          <td>Und sonntags auch mal zwei :-)</td>
        </tr>
        </table>
        ';

        Ist dann halt alles in einer Zeile, aber wenns stört kann man ja noch ein \n einbauen (Bin schon gespannt ob das neue script meine Zeilenschaltung checkt. Falls nicht, hier in Lautschrift: Bäcksläsch-Ennnn)

        lg bernhard

        Hi Bernhard,

        das ist es was ich gesucht habe. Bin nicht drauf gekommen, weil mir Homesite im PHP-Code die einfachen Anführungsstichen unterschlägt.

        Servus Alex

  2. Währe es nicht am einfachsten den Texz in eine Textdatei zu packen und dann einfach mit include("datei.txt"); die Template einzufügen.
    In datei.txt steht dann der Quellquode. Am besten man legt sich einen
    Include-Ordner an mit Admi-System.