Harald: include

Hallo @ all

Ich habe gerade eine etwas langsamere Funktion zum einlesen eines Textfiles auf meiner Seite (http://www.sciencesource.info/) durch include() ersetzt. Doch jetzt gibt er am Ende des einlesens eine "1" aus, warum dies, und wichtiger, wie kann ich das Verhindern?

function begin_page()
{
 $include = include("begin.txt");
 echo "$include";
}

--------------
Mfg: Harry

  1. Hi

    Ich habe gerade eine etwas langsamere Funktion zum einlesen eines Textfiles auf meiner Seite (http://www.sciencesource.info/) durch include() ersetzt. Doch jetzt gibt er am Ende des einlesens eine "1" aus, warum dies, und wichtiger, wie kann ich das Verhindern?

    function begin_page()
    {
    $include = include("begin.txt");

    $include wird das Ergebnis der Funktion include() zugewiesen.
    Wenn das includieren erfolgreich war, ist das Ergebnis 1.

    echo "$include";

    also wird hier folgerichtig die 1 ausgegeben.

    }

    include macht nichts anderes, als den Text der Datei dort einzufügen, wo der include steht.
    Wenn Du in der includierten Datei eine Funktion z.B. blabla() definierst, mußt Du
    erst die Datei includieren und dann die Funktion blabla() selbst aufrufen.

    Andreas

  2. Hallo Harry,

    Include-Files werden in den Block "geladen" wo die Funktion aufgerufen wird. Außerdem dürfen include-Dateien keine Ausgabe auf dem Browser erzeugen, weil die sofort an diesen ausgegeben wird. Einen Trick, wie man Textdateien trotzdem includen kann:

    <!-- textdatei.txt -->
    <?php
    $text="    hier steht jezt das ganze Blabla auch mit <b>fetten</b> Tags drin und Zeilenumbrüchen und <br>";
    ?>

    $OK = include(textdatei.txt);

    Danach steht Dir dann in dem Block, in dem Du die include aufgerufen hast, die Variable $text mit dem Text zur Verfügung.

    Ab PHP ?? (4.x glaube ich) kann man auch anders vorgehen:

    <!-- textdatei.php -->
    <?
    return "hier steht der Text";
    ?>

    $text = include(textdatei.php);

    So ungefähr müsste es gehen.

    Tom