Zitat:
Zitat von Canonn
Hallo Zsammen,
wenn die Seite geladen wird möchte, dass eine Function der Auswertungen durchfürt, mit geladen wird. Diese Function kommt sehr oft vor deshalb möchte ich nur 1x auf Server haben und immer darauf zugreifen.
|
include_once() oder
require_once() könnten hier eher passend sein.
Zitat:
Das sieht bei mir so aus:
Auf server ist die Datei abgelegt mit dem Inhalt was in Funktionen zwischen { } Klammern steht und unter den Namen "readdata.php" abgeseichert.
Wenn die Seite geladen wird sollte dies mitgeladen werden. Ich versuche so aufzurufen:
PHP-Code:
<?php
function foo($data) {
include (readdata.php);
}
?>
Die Inhalt von $data sollte nun verabeitet werden.
Da beomme immer eine Fehlermeldung:
Warning: foo(readataphp) [function.foo]: failed to open stream: No such file or directory...bla..bla
Wo liegt hier das Problem ...
|
Deine Funktionsdeklaration sagt mir, dass egal, mit welchen Argumenten du foo() aufrufst, include() immer den gleichen konstanten Wert übergeben bekommt: Der besteht aus zwei miteinander verketteten Konstanten namens "readdata" und "php". Und weil PHP nicht definierte Konstanten einfach als Zeichenketten interpretiert, die den gleichen Wert wie ihre Namen haben, versucht include() die Datei mit dem Pfad
'readdata' . 'php' ( == '
readdataphp')
zu lesen. Hättest du error_reporting() auf E_ALL gestellt, hätte dir PHP gesagt, dass du hier offensichtlich was falsch machst.

Allerdings sollte einem schon im Editor auffallen, dass da etwas nicht stimmt -- wenn der Editor vernünftiges Syntaxhighlighting hat.
Man kann übrigens die Existenz einer Datei mit
is_file($path) ganz einfach überprüfen.
Zitat:
PHP-Code:
include("readdata.php");
|
Besser ist:
include('readdata.php');
Wenn in der Zeichenkette nichts
interpoliert werden soll, dann ist es sinnvoller,
die einfachen Hochkommas zu verwenden. Das vermeidet Ärger.