Hi,
ich binde eine PHP-Datei (#1) in eine andere (#2) ein, das ganze geschieht via file_get_contents();
. In (#1) befindet sich PHP-Code, der auch verarbeitet werden soll, durch diese Einleseprozedur wird der PHP-Code dann aber einfach auf der Seite im HTML-Quelltext mit ausgegeben. Auf php.net habe ich gesehen, dass es dafür wohl Funktionen gibt (ob_start), mit denen man das Problem lösen kann, allerdings schaffe ich es nicht, dass in mein Script einzuarbeiten (vielleicht ist's auch der falsche Ansatz). Mein Script sieht so aus:
<?php
$bereich = $_GET['bereich'];
$datei = "$bereich/themen/$thema.php";
$einlesen = file_get_contents($datei);
###
##Abfrage ob Suchbegriff eingegeben wurde
if(isset($_GET['suchbegriff']))
{
$highlight = htmlentities($_GET['suchbegriff']);
$highlight = preg_replace('[\-]',' ', $highlight);
###
##Funktion um mehrere Suchbegriff zu trennen
function WortMarkieren($einlesen, $highlight)
{
if(substr($_GET['suchbegriff'],0,1) == "\"" && substr($_GET['suchbegriff'],-1,1) == "\"") ## Prüfen ob Suchbegriff von "..." eingeschlossen ist
{
$search_str = str_replace(""","",$highlight);
###
##RegExp um Suchbegriffe nur außerhalb von HTML-Tags zu ersetzen (http://www.php-faq.de/q/q-regexp-ersetzen.html)
$einlesen = preg_replace("/((<[^>]*)|$search_str)/ie", '"\2"=="\1"? "\1":"<span class=\"suchbegriff\">\1</span>"', $einlesen);
}
else
{
$highlight = split(" ",$highlight); ##Mehrere Suchbegriffe ohne "" einzeln verarbeiten
foreach($highlight as $search_str)
{
###
##RegExp um Suchbegriffe nur außerhalb von HTML-Tags zu ersetzen (http://www.php-faq.de/q/q-regexp-ersetzen.html)
$einlesen = preg_replace("/((<[^>]*)|$search_str)/ie", '"\2"=="\1"? "\1":"<span class=\"suchbegriff\">\1</span>"', $einlesen);
}
}
return $einlesen;
}
echo WortMarkieren($einlesen,$highlight);
}
else
{
echo $einlesen;
}
?>
Gibt's ne Möglichkeit, das zu realisieren?