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