phpbar.de logo

Mailinglisten-Archive

[php] Re: Regex

[php] Re: Regex

Axel Tietje a.tietje_(at)_flynet.de
Fri, 19 Mar 1999 15:27:26 +0100


Dies ist eine mehrteilige Nachricht im MIME-Format.
--------------612C56C56A5B881CAAF1D04C
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable

Ich schrieb:

> Properties, deren Wert _nach_ einem Leerzeichen+Zeilenumbruch steht,
> werden noch nicht erkannt, obwohl in der regex [ \n]+ steht. Warum nur?=


*beiss in die Tischkante*

Siehe Attachment...

Gru=DF, Axel.
--
a.tietje_(at)_flynet.de
--------------612C56C56A5B881CAAF1D04C
Content-Type: text/html; charset=us-ascii;
 name="rtf.phtml"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="rtf.phtml"

<TITLE>Cool Tool of the Day!</TITLE>

<PRE>

<?php


$rtf = file ("rtfs/test2.rtf"); // Bitte anpassen
$rtf2 = $rtf;
$rtf = implode ($rtf, ""); // jetzt sollte es kein Prob mehr mit Umbr&uuml;chen geben...

$pattern = "(\{\\\\propname[ \n]+)"
		 . "([a-z \\\']+)" // Umlaute werden in RTF-Files maskiert! Es gibt auch Property-Bezeichner mit mehr als einem Wort!
		 . "(\}\\\\proptype30\{\\\\staticval[ \n]+)"
		 . "([^}]+)"
		 . "(\})"
		 . "(.*)";
		 
$newfile = "";
echo "<pre>";
		while ( eregi($pattern, $rtf, $regs) ) {
			$property[$regs[2]] = $regs[4];
			$rtf = $regs[6]; /* Rest durchsuchen */
		}

echo "<hr>Hier die Variablen:<br><br>";
while ( list( $key, $value ) = each( $property ) ) {
	echo $key, " = ", $value, "<br>";
}
echo "<hr>";

$rtf = $rtf2;
$text = implode ($rtf, "");
reset ($property);

for( reset($property); $key = key($property); next($property) ) {
	$pattern = "(\{\\\\propname[ \n]+)"
			 . "(" . QuoteMeta($key) . ")"
			 . "(\}\\\\proptype30\{\\\\staticval[ \n]+)"
			 . "([^}]+)"
			 . "(\})"
			 . "(.*)";
	$neu = "";
	while ( eregi($pattern, $text, $regs) ) {
		$replace = $property[$key]."_NEU";
		$neu .= eregi_replace($pattern, "\\1\\2\\3$replace\\5", $text);
		$text = $regs[6]; /* Rest durchsuchen */
	}
	$text = $neu . $text;
}

echo $text;

echo "\n\n/\\* \\(c\\) Ramsch + Tietje :-)\\\\x \\*/\n";

?></PRE>
--------------612C56C56A5B881CAAF1D04C--




php::bar PHP Wiki   -   Listenarchive