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

Zeile einer Datei includen

Status
Für weitere Antworten geschlossen.

assmaje

Neues Mitglied
Kann ich per PHP eine bestimmte Zeile, die sich in Datei B befindet, in Datei A einbinden? Falls ja, wie?

Danke!! ;)
 
Werbung:
Mit
PHP:
$array = file("datei.txt");
die Datei in das Array lesen und dann die betreffende Zeile heraussuchen und per
PHP:
echo $array[xx]; // xx = Index der Zeile
ausgeben.

Gruß thuemmy
 
Danke :), aber irgendwie krieg ich das nicht hin... warum funktioniert das hier nicht?

PHP:
...
    <title>
      <?php
      $array = file("page/title.txt");

      if ($_GET['page'] == "start")
      { echo $array[2]; }

      if ($_GET['page'] == "impressum")
      { echo $array[5]; }

      if ($_GET['page'] == "demos")
      { echo $array[8]; }

      if ($_GET['page'] == "programme")
      { echo $array[11]; }

      if ($_GET['page'] == "flash")
      { echo $array[14]; }

      if ($_GET['page'] == "homebrew")
      { echo $array[17]; }

      if ($_GET['page'] == "themes")
      { echo $array[20]; }

      if ($_GET['page'] == "wallpaper")
      { echo $array[23]; }
      ?>
    </title>
...

Ich verwende diesen Code zum Einbinden meines Inhalts:

PHP:
...
        <div id="content">

          <?php
          if (! isset($_GET["page"]))
          { $_GET["page"] = "start"; }

          if ($_GET['page'] == "start")
          { include "page/start.html"; }

          if ($_GET['page'] == "impressum")
          { include "page/impressum.html"; }

          if ($_GET['page'] == "demos")
          { include "page/demos.html"; }

          if ($_GET['page'] == "programme")
          { include "page/programme.html"; }

          if ($_GET['page'] == "flash")
          { include "page/flash.html"; }

          if ($_GET['page'] == "homebrew")
          { include "page/homebrew.html"; }

          if ($_GET['page'] == "themes")
          { include "page/themes.html"; }

          if ($_GET['page'] == "wallpaper")
          { include "page/wallpaper.html"; }
          ?>

        </div>
...

EDIT:
Link zur Seite:
http://psp-spielebase.de
 
Zuletzt bearbeitet:
Werbung:
Keine Ahnung warum es bei Dir nicht funktioniert, weil Du auch nicht schreibst, was nicht funktioniert?

Ein kleiner Tipp, der ja vielleicht schon hilft: $array beginnt mit dem Index 0.

Gruß thuemmy
 
Keine Ahnung warum es bei Dir nicht funktioniert, weil Du auch nicht schreibst, was nicht funktioniert?

Ein kleiner Tipp, der ja vielleicht schon hilft: $array beginnt mit dem Index 0.

Gruß thuemmy
Mit "funktioniert nicht" meine ich, dass die Titel der Unterseiten nicht entsprechend angezeigt werden.

Heißt das, dass ich $array[1] verwenden muss (anstatt $array[2]) um die zweite Zeile aus title.txt einzubinden?
 
Werbung:
Also das ist ja jetzt komisch. Könnte es eventuell sein, dass Dir beim Korrigieren irgendein Fehler (Löschen einer Klammer oder ähnliches) passiert ist?

Gruß thuemmy
 
Lass Dir halt mal $array ausgeben, ob das File überhaupt richtig eingelesen wird.
 
Werbung:
Das einfachste wäre:
PHP:
<?php 
print_r($array);

// oder auch

var_dump($array);

// oder auch

foreach($array as $element) {
   echo $element . "<br>\n";
}

// aber auch so

$count = count(array);
for ($i=0;$i<$count;$i++) {
   echo "Zeile " . $i+1 . ": " . $array($i) . "<br>\n";
}
?>
Gruß thuemmy
 
Werbung:
Danke :), hat aber leider nicht funktioniert... Übrigens:

Validation Results - W3C Markup Validator

Mist. ><

Ich poste noch mal den Code, hab ihn aber schon x-mal auf Fehler überprüft... :?

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">

<html>
  <head>
    <title>
      <?php
      array = file("page/title.txt");
      print_r ($array);

      if ($_GET['page'] == "start")
      { echo $array[0]; }

      if ($_GET['page'] == "impressum")
      { echo $array[1]; }

      if ($_GET['page'] == "demos")
      { echo $array[2]; }

      if ($_GET['page'] == "programme")
      { echo $array[3]; }

      if ($_GET['page'] == "flash")
      { echo $array[4]; }

      if ($_GET['page'] == "homebrew")
      { echo $array[5]; }

      if ($_GET['page'] == "themes")
      { echo $array[6]; }

      if ($_GET['page'] == "wallpaper")
      { echo $array[7]; }
      ?>
    </title>

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">

    <link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
    <link rel="icon" href="favicon.ico" type="image/x-icon">

    <link rel="stylesheet" type="text/css" href="standard.css">
    <!--[if lt IE 7]>
      <link rel="stylesheet" type="text/css" href="lt_ie7.css">
    <![endif]-->
  </head>
  <body>

    ...

  </body>
</html>

EDIT:
Den Code von thuemmy muss ich noch ausprobieren... :) Der Post wurde erstellt, während ich geschrieben habe.

EDIT 2:
Hmm, funktioniert wieder nicht... :( vielleicht positioniere ich ja die Codeschnipsel falsch?

PHP:
<html>
  <head>
    <title>
      <?php
      array = file("page/title.txt");
      print_r($array);

      if ($_GET['page'] == "start")
      { echo $array[0]; }
      ?>
    </title>

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">

    <link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
    <link rel="icon" href="favicon.ico" type="image/x-icon">

    <link rel="stylesheet" type="text/css" href="standard.css">
    <!--[if lt IE 7]>
      <link rel="stylesheet" type="text/css" href="lt_ie7.css">
    <![endif]-->
  </head>
  <body>

    ...

  </body>
</html>
 
Zuletzt bearbeitet:
Den Fehler hab ich noch nicht gefunden.
Aber an deiner Stelle würde ich die ganzen If-Anweisungen durch eine
Switch-Anweisung ersetzen.

MfG Speider

P.S. Wenn Anweisung falsch beschrieben ist.
Mir ist einfach nicht das richtige Wort eingefallen.
 
Werbung:
@Thor:
Ohne PHP wird die Seite korrekt dargestellt, nur halt ohne Titel. Mit PHP sieht man einfach nur eine weiße Fläche. Der Validator sagt, dass es ein 500 Internal Server Error ist. :???:

@Speider:
Was ist ne switch-Anweisung? Ich kenn mich in PHP nicht besonders gut aus...
 
Zuletzt bearbeitet:
Ja, um zu überprüfen, ob die Variablen auch in dem Array sind, solltest du print_f nicht im title aufrufen, sondern im body und dabei das php aus dem titel entfernen.

Und wenn du schon dabei bist, lass dir auch $_GET ausgeben.
 
Werbung:
Variablen beginnen mit einem "$" -> $array (in der Zeile, wo die Datei gelesen wird).
 
Danke, war wohl n copy & paste Fehler...
laugh.gif


Funktioniert jetzt (danke an alle!!), aber in der obersten Zeile meiner Website steht Array ( [page] => themes ), was unter anderem das Layout/Design verschiebt... hab den Code-Schnipsel in den head kopiert, davor stand dort noch einiges mehr. Kann ich das irgendwie entfernen?

PHP:
<html>
  <head>

    <?php
    print_r($array);
    print_r($_GET);
    ?>

    <title>
      <?php
      $array = file("page/title.txt");

      if ($_GET['page'] == "start")
      { echo $array[0]; }

      if ($_GET['page'] == "impressum")
      { echo $array[1]; }

      if ($_GET['page'] == "demos")
      { echo $array[2]; }

      if ($_GET['page'] == "programme")
      { echo $array[3]; }

      if ($_GET['page'] == "flash")
      { echo $array[4]; }

      if ($_GET['page'] == "homebrew")
      { echo $array[5]; }

      if ($_GET['page'] == "themes")
      { echo $array[6]; }

      if ($_GET['page'] == "wallpaper")
      { echo $array[7]; }
      ?>
    </title>
...
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
Zurück
Oben