Problem mit preg_match()

Gunah

Erfahrenes Mitglied
Moinsen,

Ich habe folgends Problem, das nach preg_match nichts aussgeben wird, der array ist leer...

hier der Quellcode:
PHP:
	function template($templatefile) {
	$templatefile=@file_get_contents($templatefile);
	if(!$templatefile) die("No Template Found");
	else {
		preg_match('/<!--###BODY###-->(.+)<!--###BODY###-->/',$templatefile,$templatefile2);
		$this->templatefile=$templatefile2['1'];
		//echo var_dump($templatefile2);
		}
	}
ist ein teil einer klasse die ich gerade schreibe :)

danke euch schonmal im Vorraus :)

Gruß
Gunah
 
Du solltest prüfen, ob überhaupt etwas gefunden wurde:
PHP:
if( preg_match('/<!--###BODY###-->(.+)<!--###BODY###-->/',$templatefile,$templatefile2) ) {
	// es gab eine Übereinstimmung
} else {
	// es gab keine Übereinstimmung
}
 
danke für deine Antwort

ich habe mit pint_r und var_dump guckt ob was zurück geben wird, aber der array is leer... :(

deine möglichkeit mit if() ist auch ne möglichkeit (werde ich später auch einbauen :) )
aber ich denke zum Debuggen ist es mit print_r und var_dump zu arbeiten wesentlich besser (finde ich)

Gruß
Gunah
 
Ich nehme mal an, dass du in der Datei nicht alles in einer Zeile zu stehen hast :eek:

Falls ich das zurecht annehme, verwende in deinem Ausdruck den Modifikator s

Warum: du suchst über den Punkt nach beliebigen Zeichen...nur ohne das s findet der Punkt alles,...ausser Zeilenumbrüche:-)
Also gesetzt den Fall, das 1. und das 2. <!--###BODY###--> stehen nicht in einer Zeile, kann dort nichts gefunden werden....ohne das s
 
ah okay das macht sinn,
werde ich heute abend ausprobieren, habe die Dateien hier leider nicht vorliegen.

:D

Gruß
Gunah
 
Zurück