Mailinglisten-Archive |
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ü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