Include dateien bearbeiten?

Hi leute…
ich habe für eine suchfunktion eine Variable an ein Dokument angehängt und möcht nun, dass sie im Dokument ersetzt wird:

Die Datei index.php includet ein Domument mit dem Namen startseite.php.
ich möchte nun, dass aber in diesem Dokument das Wort hallo durch etwas ersetzen.

Theoretisch so:

[code]$inhalt = file_get_contents($seite);
$neuerinhalt = ereg_replace($suchwort, “<” . $suchwort . “>”, $inhalt);

echo $neuerinhalt;[/code]

Das Problem ist jedoch, dass echo den vorhandenen PHP code in startseite.php nicht ausführt.

Könnt ihr mir helfen?

Also das erste wird irgendwie als URI im browser aufgerufen?

Werden die GET-Parameter ‘seite’ und ‘suchwort’ beim Skript
denn auch eingelesen? In dem zitierten Fragment jedenfalls
nicht.
Da tut man dann auch gut daran, das Einlesen ordentlich
abzusichern, damit da ein Angreifer nicht irgendwelchen
Blödsinn einschleusen kann.

Natürlich nicht, echo “führt” keinen PHP-Code aus, und beim Einlesen über file_get_contents ist der Parser auch nicht aktiv.

Man könnte entweder mit include und output buffering arbeiten - dann würde der PHP-Code erst mal ausgeführt, und in der Ausgabe könnte man dann den Suchbegriff ersetzen.
Oder man liest die Datei nach wie vor normal ein, ersetzt erst, und führt das ganze dann per eval aus.

Vom Sicherheits-Gesichtspunkt her muss das ganz natürlich noch verbessert werden, sagte hoffmann ja schon.

Und ob das mit dem Suchen/Ersetzen überhaupt so nötig ist, hängt natürlich auch davon ab, was überhaut erreicht werden soll.

Natürlich nicht, echo “führt” keinen PHP-Code aus, und beim Einlesen über file_get_contents ist der Parser auch nicht aktiv.

Man könnte entweder mit include und output buffering arbeiten - dann würde der PHP-Code erst mal ausgeführt, und in der Ausgabe könnte man dann den Suchbegriff ersetzen.
Oder man liest die Datei nach wie vor normal ein, ersetzt erst, und führt das ganze dann per eval aus.

Vom Sicherheits-Gesichtspunkt her muss das ganz natürlich noch verbessert werden, sagte hoffmann ja schon.

Und ob das mit dem Suchen/Ersetzen überhaupt so nötig ist, hängt natürlich auch davon ab, was überhaut erreicht werden soll.[/quote]

Ich glaube das ist, was ich suche. Die befehle werd ich mal im Manual nachschlagen.
Danke!

(In sachen Sicherheit ist schon alles erledigt; ich hab ja nicht das ganze script hier gepostet)

Was du suchst gibt es auch schon im Manual :wink:

[quote]
Example #6 Using output buffering to include a PHP file into a string

[code]<?php
$string = get_include_contents(‘somefile.php’);

function get_include_contents($filename) {
if (is_file($filename)) {
ob_start();
include $filename;
$contents = ob_get_contents();
ob_end_clean();
return $contents;
}
return false;
}

?>[/code][/quote]
us.php.net/manual/en/function.include.php