ThoRr
Mitglied
Hi,
ich habe ein höchst seltsames Problem. In einer includeten Datei habe ich eine Funktion, die eine Datei einliest und dann in dieser Ersetzungen mittels preg_replace vornimmt. Allerdings zeigt preg_replace an dieser Stelle überhaupt keine Wirkung.
Das ist nicht der Originalcode, sondern ich war in meiner Fehlersuche schon so weit, dass ich einfach mal versucht habe, den ganzen String mittels .* zu erfassen. Allerdings hat auch das nichts gebracht. Übrigrens gelangt PHP auch nicht in die if-Schleife, obwohl in dem Dateiinhalt sich genau das vorfindet, was ich im Pattern notiert habe.
Generell an meiner Serverkonfiguration kann es nicht liegen, da dieser Minimalcode ohne Probleme funktioniert:
LG
ich habe ein höchst seltsames Problem. In einer includeten Datei habe ich eine Funktion, die eine Datei einliest und dann in dieser Ersetzungen mittels preg_replace vornimmt. Allerdings zeigt preg_replace an dieser Stelle überhaupt keine Wirkung.
PHP:
// Generate the menu
$file = ROOT_PATH . DESIGN_PATH . '/menu.html';
$file_handle = fopen($file, 'r');
$file_menu = fread($file_handle, filesize($file));
fclose($file_handle);
if (preg_match('/<!-- BEGIN menuitem -->(.*)<!-- END menuitem -->/', $file_menu, $matches))
{
// Menu item "Startseite"
$pattern = array(
'/\{menuitem.HREF\}/',
'/\{menuitem.TEXT\}/');
$replace = array(
'?sel=home',
'Startseite');
$menu_items = preg_replace($pattern, $replace, $matches[1]);
// Menu item "Seiten"
$pattern = array(
'/\{menuitem.HREF\}/',
'/\{menuitem.TEXT\}/');
$replace = array(
'?sel=pages',
'Seiten');
$menu_items .= preg_replace($pattern, $replace, $matches[1]);
}
$file_menu = preg_replace('/.*/', '', $file_menu, null, $count);
echo($file_menu . $count);
Das ist nicht der Originalcode, sondern ich war in meiner Fehlersuche schon so weit, dass ich einfach mal versucht habe, den ganzen String mittels .* zu erfassen. Allerdings hat auch das nichts gebracht. Übrigrens gelangt PHP auch nicht in die if-Schleife, obwohl in dem Dateiinhalt sich genau das vorfindet, was ich im Pattern notiert habe.
Generell an meiner Serverkonfiguration kann es nicht liegen, da dieser Minimalcode ohne Probleme funktioniert:
PHP:
<?php
$pattern = '/.*/';
$replacement = '';
$subject = 'Text';
$subject = preg_replace($pattern, $replacement, $subject);
echo($subject);
?>
LG