• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Mehrere HTML Dokumente in 1 *.php-Datei speichern

Status
Für weitere Antworten geschlossen.
C

Cryspy

Guest
Man kann ja, so viel ich weiß (und von php weiß ich im prinzip gar nix ;ugl) mehrere HTML's in einer PHP-Datei speichern.

Deswegen sehen viele URLs auch so aus: webhosting24 - Login

Nur ich check nicht so ganz wie das geht...

Man kann es ja so machen:


PHP:
<?php
$seite=$_GET["index"];

if($seite="index")
{
echo "eine ganze HTML seite?";
}

if($seite="gewinnspiel")
{
echo "Hier könnte der HTML-Code von einem Gewinnspiel stehen";
}
?>

Macht man das wirklich so, oder weiß ich nur nicht wie man das richtig macht? (von 2. gehe ich aus)
 
PHP:
 switch($_GET['mode']) {
  case "gallery":
    //code
  break;
  case "news":
    //code
  break;
  case "stuff":
    //code
  break;
  default, etc etc
}

Also so? Aber dann braucht man für die Ausgabe von HTML-Tags usw, kein echo mehr? Tut mir eicht leid die dämlichen Fragen, aber ich bin halt n´noch ein Noob in PHP.
 
so gehts meiner Einung nach einfacher als mit switch:
PHP:
<?php
  //hier kommen alle Seiten rein, die es gibt
  $seiten = array(
    'startseite',
    'impressum'
    //und so weiter
  );

  $seite = isset($_GET['seite']) ? $_GET['seite'] : 'startseite';

  include in_array($seite, $seiten) ? 'seiten/'.$seite.'.html' : 'seiten/startseite.html';
?>
im Verzeichnis Seiten wäre dann alles, was es so gibt als .html-Datei und um <?php ?> herum steht der Code, der unverändert bleibt.

EDIT:
Fehler im Code berichtigt (Parameter für in_array waren vertauscht)
 
Zuletzt bearbeitet:
@BcF: Jetz kapier ich gar nix mehr.

PHP:
 include in_array($seiten, $seite) ? 'seiten/'.$seite.'.html' : 'seiten/startseite.html';

Ich hab zu wenig Kenntnisse zum die Zeile da verstehen ;ugl und das was du gesagt hast, hat mich auch ein bissle verwirrt...
 
PHP:
<?php
 switch($_GET['page']) {
  case "gallery":
  include("gallery.php");
  break;
  case "news":
  include("news.php");
  break;
  case "stuff":
  include("stuff.php");
  break;
  default: include("index.php");
}  
?>
so würde ich es machen.

;)
 
Ich muss meinen Code jetzt trotzdem nochmal erklären (ich muss einfach), ob du ihn benutzt oder nicht ist deine Sache ;)

Also gut, so gehts:
- Du hast die Datei index.php im Hauptverzeichnis, dadrin ist dein HTML-Code
- Du hast weiterhin das Verzeichnis Seiten, in dem erstellst du jetzt für jede Seite nur den Inhalt (also das, was sich ändert, wenn man auf einen Link klickt) d.h. du hast beispielsweise startseite.html, ueber_mich.html und impressum.html
- Über diese Namen kannst du jetz die entsprechenden Seiten aufrufen
http://domain.tld/index.php?seite=startseite
- Da, wo jetzt steht
PHP:
//hier kommen alle Seiten rein, die es gibt
$seiten = array(
  'startseite',
  'impressum'
  //und so weiter
);
schreibst du die Seiten hin (ohne .html), die du im Verzeichnis seiten/ erstellt hast.
- Dann fügst du den ganze Code wie er oben steht in deine index.php an der Stelle ein, wo sonst der Inhalt stehen würde.
- Wenn du die Seite nun wie oben beschrieben aufrufst, wird an der Stelle, wo dieser Code steht nun der Inhalt der entsprechenden Datei im Verzeichnis seiten/ angezeigt

Wenn du den Code komplett verstehen möchtest guck mal hier oder hier.

Ich hoffe ich konnte mich verständlich ausrücken ;)
 
Solltest du meine Version jetzt verwenden, beachte mal das EDIT im ersten Post (hatte nen kleinen Fehler drin)
 
War es so gemeint?

PHP:
<?
if ($_GET[page]=="1") {
?>
   //hier die Inhalte für index.php?page=1
<?
}
else if ($_GET[page]=="2") {
?>
   //hier die Inhalte für index.php?page=2
<?
}
else if ($_GET[page]=="3") {
?>
   //hier die Inhalte für index.php?page=3
   //und so weiter für jede weitere Unterseite
   //das Kommende nach der letzten Unterseite
<?
}
else {
?>
   //hier die Inhalte der Startseite die mit index.php aufgerufen wird
<?
}
?>
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben