echo mit here-Dokument

Alles, was PHP betrifft, kann hier besprochen werden.

echo mit here-Dokument

Postby Demetry » 13. January 2007 00:31

Hallo zusammen,

Warum funktioniert das "eingefügte" here-Dokument mit "echo <<<MARKE <!-- HTML-Block --> MARK;" in PHP5 (XAMPP für Windows V1.5.5) nicht?

HG, Demetry
Last edited by Demetry on 13. January 2007 00:35, edited 1 time in total.
Best Regards,
Demetry
Demetry
 
Posts: 79
Joined: 19. July 2005 22:39
Location: Germany
Operating System: Windows 7 / 8.1

Postby Wiedmann » 13. January 2007 00:34

Hast du da mal ein komplettes Beispiel was beoi dir nciht geht?

(das Forum bietet dazu beim Post verfassen den "Code"-Button an)
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Demetry » 13. January 2007 00:40

Code: Select all
<?

  # --------------------------------
  # Templates:
  $layout_template = "template.inc";
  $navigation_template = "navigation.tpl";
  # --------------------------------
  # Inhaltsdateien:
  $content_files = array();
  $content_files['home'] = "index.php";
  $content_files['impressum'] = "impressum.php";
  $content_files['texte'] = "texte.php";
  $content_files['scripts'] = "scripts.php";
  $content_files['programme'] = "programme.php";
  $content_files['audiofiles'] = "AudioFiles.php";
  $content_files['interessantes'] = "interessantes.php";
  #===========================================
  # Templates einlesen:
  $layout_content = file_get_contents($layout_template);
  $navigation_content = file_get_contents($navigation_template);
  # --------------------------------
  # Seite aus Templates zusammenfügen:
  $page = $layout_content;
  $page = preg_replace("/\[\%navigation\%\]/", $navigation_content, $page);
  # --------------------------------
  # Inhalt seitenabhängig einlesen:
  $get_page = "";
  if(isset($_GET['page'])) $get_page = $_GET['page']; else
  $get_page = "home";
  $content_lines = file($content_files[$get_page]);
  $content = implode("", $content_lines);
  # --------------------------------
  # Inhalt in Seite einfügen:
  $page = preg_replace("/\[\%content\%\]/", $content, $page);
  # --------------------------------
  # Titel ermitteln und einfügen:
  preg_match("/<h1>(.*)<\/h1>/", $content_lines[0], $matches);
  $page_title = strip_tags($matches[0]);
  $page = preg_replace("/\[\%title\%\]/", $page_title, $page);
  # --------------------------------
  # Fertige Seite ausgeben:
  echo $page;

?>


Nach Ausgabe der Navigationnsleiste wird der Code der PHP-Datei einfach ausgegeben.
Best Regards,
Demetry
Demetry
 
Posts: 79
Joined: 19. July 2005 22:39
Location: Germany
Operating System: Windows 7 / 8.1

Postby Wiedmann » 13. January 2007 00:46

*verwirrt ist*

In dem ganzen Beispiel kommt ja nirgends die "here document" - Syntax vor, die bei dir nivht gehen soll :?:
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Demetry » 13. January 2007 00:52

sorry, war falsche Datei...

Hier jetzt aber ist die richtige!

Code: Select all
<?

  echo <<<Navigationsleiste
    <ul>
      <li><a class='navi' href='texte'>Seite: Tipps &amp; Tricks</a></li>
      <li><a class='navi' href='scripts'>Seite: Scripts</a></li>
      <li><a class='navi' href='programme'>Seite: Programme</a></li>
      <li><a class='navi' href='AudioFiles'>Seite: Audio Tutorial</a></li>
      <li><a class='navi' href='Richtlinien'>Seite: Richtlinien und Anmeldung</a></li>
      <li><a class='navi' href='interessantes/'>Seite: Andere interessante Punkte</a></li>
    </ul>
  Navigationsleiste;

?>
Best Regards,
Demetry
Demetry
 
Posts: 79
Joined: 19. July 2005 22:39
Location: Germany
Operating System: Windows 7 / 8.1

Postby Wiedmann » 13. January 2007 00:58

Code: Select all
  Navigationsleiste;

Da dürfen nirgends Leerzeichen sein.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Demetry » 13. January 2007 01:05

Heißt das, dass der Code ohne "Layout" geschrieben werden muss?
Best Regards,
Demetry
Demetry
 
Posts: 79
Joined: 19. July 2005 22:39
Location: Germany
Operating System: Windows 7 / 8.1

Postby Wiedmann » 13. January 2007 01:09

Was meinst du mit "ohne Layout"?

Ader anders:
Ich habe dir eine Zeile (mit Leerzeichen) aus deinem Code zitiert und dir gesagt in dieser Zeile darf was nicht vorkommen?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Demetry » 13. January 2007 01:15

oh, jetzt reden wir glaube ich fast aneinander vorbei?
Welche Leerzeichen, sorry aber ich kann da keine finden?
Mit "Layout" meinte ich die Code-Struktur.
Best Regards,
Demetry
Demetry
 
Posts: 79
Joined: 19. July 2005 22:39
Location: Germany
Operating System: Windows 7 / 8.1

Postby Wiedmann » 13. January 2007 01:20

Welche Leerzeichen, sorry aber ich kann da keine finden?

Dann markiere die (Code-) Zeile die ich zitiert habe mit der Maus.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Demetry » 13. January 2007 01:27

Du meinst wahrscheinlich das Leerzeichen von der MARKE?
Bringt aber nicht, wenn ich diese entferne...

Mit der Maus kann ich nicht so einfach arbeiten, da ich einen Screenreader nutze.
Best Regards,
Demetry
Demetry
 
Posts: 79
Joined: 19. July 2005 22:39
Location: Germany
Operating System: Windows 7 / 8.1

Postby Wiedmann » 13. January 2007 01:36

Du meinst wahrscheinlich das Leerzeichen von der MARKE?

Nicht das, sondern die. Sind 2 Stück.

Bringt aber nicht, wenn ich diese entferne...

Also so tut es dann "einwandfrei".
Code: Select all
<?php

  echo <<<Navigationsleiste
    <ul>
      <li><a class='navi' href='texte'>Seite: Tipps &amp; Tricks</a></li>
      <li><a class='navi' href='scripts'>Seite: Scripts</a></li>
      <li><a class='navi' href='programme'>Seite: Programme</a></li>
      <li><a class='navi' href='AudioFiles'>Seite: Audio Tutorial</a></li>
      <li><a class='navi' href='Richtlinien'>Seite: Richtlinien und Anmeldung</a></li>
      <li><a class='navi' href='interessantes/'>Seite: Andere interessante Punkte</a></li>
    </ul>
Navigationsleiste;

?>


"einwandfrei" in Hochkommas deshalb, weil das Ganze ja wohl von einem Webbrowser angezeigt werden soll. Und der erwartet normal korrektes HTM: Es fehlt das HTML - Grundgerüst.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany


Return to PHP

Who is online

Users browsing this forum: No registered users and 3 guests