Regüläre Ausdrücke - ich raffs net - "Pattern Syntax" ...
benji
- php
Hallo !
--> hinweis: Dieses ganze gelaber unter diesem absatz ist eigentlich egal, meine frage ist nur gaaaaanz kurz: Ich bekomme einen regulären ausdruck nicht hin :(
Also, eigentlich wollte ich nur mal so zum Spaß so eine Art "Druckversion" mit PHP machen. Also:
Nehmen wir an, alle Seiten der HP sind nach dem Prinzip:
<?php
$title = "<title>-Tag";
include "../librarys/top.php";
?>
Text auf dieser Seite
<?php
include "../librarys/end.php";
?>
aufgebaut. Nun könnte man daraus ganz leicht und schnell eine "Druckversion" machen: Einfach Quelltext einlesen, PHP-Tags raus und fertig. Die Seite ist also schön in der Variable "$seite" eingespeist (bzw. der gesamte Seitenquelltext mit PHP-Tags, z.B. das obige Beispiel. Meine jetzige "Druckvorschau-Seite", bzw. der ENTWURF, sieht also so aus:
<?php
$errmessage = array();
if(!isset($QUERY_STRING))
{ $errmessage[0] = "<big><b>FEHLER:</b> Diese Seite wurde falsch verlinkt ! - <a href="javascript:history.back()">zurück</a>"; }
$sideurl = $QUERY_STRING;
if(file_exists($sideurl) == false)
{ $errmessage[1] = "<big><b>FEHLER:</b> Die angegebene Datei existiert nicht. Evv. wurde sie falsch verlinkt. <a href="javascript:history.back()">zurück</a>"; }
$seite = join('', file($sideurl));
$seite = preg_replace("</?php (\n*) /?>", "", $seite);
?>
<html>
<head>
<title>Sveni Webserver - Druckversion von <?php echo $sideurl; ?></title>
<link rel="StyleSheet" href="../librarys/style.css" type="text/css">
</head>
<body>
<!-- falls $errmessage 0Objekte hat, wirds gelöscht, und wenns danach noch existiert, wirds hier ausgegeben -->
<h1>Druckversion ...</h1>
<?php
echo $seite
?>
schön, wie man sieht, wird in dieser Zeile
$seite = preg_replace("</?php (\n*) /?>", "", $seite);
der PHP-Code weggenommen. Er stört zwar sowieso nicht, aber evv. hat ein Browser Probleme damit, dass da plötzlich <?php steht und er nichts damit anzufangen hat.
Meine einfache Frage: Wie schaffe ich es mit einem regulären Ausdruck, dass er mir so was:
<?php
balsdkjadflsdfkweß023465ß2j4flasdmvn... nein nein, inhalt halt egal
und soll ruhig ganz lang sein dürfen ;-)
?>
wegmacht ? sowas: "</?php (\n*) /?>" funktioniert leider nicht.
Also, danke dann,
benji
Hi,
sowas: "</?php (\n*) /?>" funktioniert leider nicht.
sowas steht für die Zeichekette "</?php", gefolgt von einem Leerzeichen, gefolgt von beliebig vielen (Unix-)Umbrüchen, gefolgt von einem Leerzeichen und von "/?>". Du möchtest Dich mit Zeichenklassen beschäftigen, den Backslash anstatt des Slashes als Escape-Zeichen erkennen sowie über die Leerzeichen nachdenken.
Cheatah
Hallo Cheatah !
sowas: "</?php (\n*) /?>" funktioniert leider nicht.
sowas steht für die Zeichekette "</?php", gefolgt von einem Leerzeichen, gefolgt von beliebig vielen (Unix-)Umbrüchen, gefolgt von einem Leerzeichen und von "/?>".
ach so, dann also müsste es so aussehen: "</?php(*)/?>" - dann also kann es so aussehen:
<?php oder auch so: <?php asldajkhf
asdfklsdjgfsdflgk asdfsdf sdf sdgdfg ?>
?>
? oder nicht ?
Du möchtest Dich mit Zeichenklassen beschäftigen, den Backslash anstatt des Slashes als Escape-Zeichen erkennen sowie über die Leerzeichen nachdenken.
Tja, aber dann schau das dir mal an in der offiziellen PHP-Doku - DA rafft man GAR NICHTS. Im vergleich zu der Javascript-Reguläreausdrücke-Erklären-seite von Selfhtml ist das das letze, vom experten in 5 min runtergeschriebene ...
Cheatah
hoffe du antwortest mir
benji
Hi,
sowas: "</?php (\n*) /?>" funktioniert leider nicht.
sowas steht für die Zeichekette "</?php", gefolgt von einem Leerzeichen, gefolgt von beliebig vielen (Unix-)Umbrüchen, gefolgt von einem Leerzeichen und von "/?>".
kleiner Fehler meinerseits: "</?php" bezieht sich auf "<php" oder "</php"; bei "/?>" entsprechend.
ach so, dann also müsste es so aussehen: "</?php(*)/?>"
Nein. Der Slash ist immer noch kein Escape-Zeichen, und das Sternchen muss sich auf ein Pattern beziehen.
Tja, aber dann schau das dir mal an in der offiziellen PHP-Doku - DA rafft man GAR NICHTS.
Niemand hat gesagt, Regular Expressions seien leicht.
Im vergleich zu der Javascript-Reguläreausdrücke-Erklären-seite von Selfhtml ist das das letze, vom experten in 5 min runtergeschriebene ...
Dann verstehe es anhand des JavaScript-Kapitels von SelfHTML.
Cheatah
Im vergleich zu der Javascript-Reguläreausdrücke-Erklären-seite von Selfhtml ist das das letze, vom experten in 5 min runtergeschriebene ...
Dann verstehe es anhand des JavaScript-Kapitels von SelfHTML.
IN Javascript ist es ein bisschen anderer Syntax - und dank der guten Erklärung leicht zu verstehen - danke Stefan (Münz) ! ;-)
benji
OK, danke Cheatah, danke, die das alle noch nicht gelesen haben: ich hab' das Problem gelöst:
'<?php.*??>'si
.... und schon ist jeder PHP-Code "weg vom Fenster" ;-)
benji
Hi,
'<?php.*??>'si
jau :-)
Cheatah
Hi,
'<?php.*??>'si
jau :-)
HAbs mir von einem JavaScript aus String-Entfernen Beispiel von der PHP-Doku abgeschaut und mir selbst zusammengeschnippelt :)
benji
jau :-)
J O W und nicht J A U ;-)
benji