Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
[REGEX] Zeichenkette wird nicht korrekt ersetzt [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
[REGEX] Zeichenkette wird nicht korrekt ersetzt


 
st@tic
12-05-2005, 14:08 
 
wenn man nen post verfasst sind in fast jedem forum smilies zum auswählen.
dies hab ich mal zu testzwecken nachgebaut. ich hab mir ein paar smilies gespeichert und mir ne tabelle erstellt wo der smiliecode (z.B. :ratlos:) drin steht und in der anderen spallte der bildname (ratlos.gif)

dies hab ich in zwei arrays und diese wollte ich mit preg_replace durchlaufen und übereinstimmungen durch das bild ersetzen lassen
(vorerst geht auch nur der bildname ratlos.gif)



foreach($SmilieArray as $SingleElement)
{
$SmilieCode[] = $SingleElement['smilie_code'];
$SmilieIcon[] = $SingleElement['smilie_icon'];
}

echo $SmilieCode[2] . " | " . $SmilieIcon[2];
echo "<br><br><br>";
echo $text;

$text = preg_replace($SmilieCode , $SmilieIcon , $text);

echo "<br><br><br>";
echo $text;


es tauchen zwei warnungen auf. wo ich nicht genau den sinn verstehe.

Warning: preg_replace() [function.preg-replace]: Delimiter must not be alphanumeric or backslash

und

Warning: preg_replace() [function.preg-replace]: No ending delimiter ':' found in

beide tauchen in der Teile von preg_replace auf.

aber zum eigentlichen problem ist machne bilder hab ich mit :Icon: gekennzeichnet es wird ersetzt, allerdings sieht es dann z.B. so aus
:ratlos.gif: irgendwie werden die doppelpunkte nicht ersetzt.

ich hoffe ihr könnt mir da etwas weiter helfen...

 
asp2php
12-05-2005, 14:15 
 
dann schau dir den Syntax von preg_replace mal an.

 
st@tic
12-05-2005, 14:21 
 
ich lese mir zuerst immer, das manual durch, nur meistens raffs ich nicht.

hmm ok die bildchen deren code mit den : umschlossen ist werden jetzt alle konvertiert hab jetzt nur noch das problem mit den normalen smilies wie :-) 8-) usw...

 
Quetschi
12-05-2005, 14:45 
 
@st@tic

Sorry, kann dir hier leider nicht helfen, weil die Regulären Ausdrücke ned grad zu meinen Stärken zählen.
Aber ich verfolge gerade sehr gespannt wie du dein letztes Posting in regelmäßigen Abständen mit deinen neu gewonnen Erkenntnissen editierst :D
Gruss
Quetschi

 
st@tic
12-05-2005, 14:47 
 
eija so kriegen zumindest net alle mit was fürn quatsch ich schreibe *gg*

 
asp2php
12-05-2005, 14:51 
 
Original geschrieben von st@tic
eija so kriegen zumindest net alle mit was fürn quatsch ich schreibe *gg*
dafür können wir dir aber editrecht ganz schnell entziehen; weißt du das?

 
st@tic
12-05-2005, 14:54 
 
Original geschrieben von asp2php
dafür können wir dir aber editrecht ganz schnell entziehen; weißt du das?

dann müsste ich meine neuen erkenntnisse immer drunter schreiben und ich glaub da is editieren doch willkommener oder?

 
Quetschi
12-05-2005, 14:54 
 
:eek: So hart durchgreifen wegen ein paar Edit's :confused:

 
asp2php
12-05-2005, 15:00 
 
was wäre, wenn während du deinen Beitrag editierst, ein andere User auf deine (nun nicht mehr gültige) Frage antwortet? Die Folge ist, dass man den Zusammenhang nicht wieder erkennt und der hilfsbereite User für nichts geantwortet hat. Es ist nicht schlimm, dass man nicht weiss, doch es ist schlimm wenn man versucht, es zu vertuschen

 
st@tic
12-05-2005, 15:10 
 
ok ok ich werds mir merken für die zukunft.

aber ein problemchen hab ich noch

:ratlos:
:hilflos:
:schlaflos:

werden alle korrekt ersetzt, nur smilies wie z.B. :-) :-( 8-)
werden es nicht


foreach($SmilieArray as $SingleElement)
{
$SmilieCode[] = "/" . $SingleElement['smilie_code'] . "/";
$SmilieIcon[] = "<img src=\"images/smilies/" . $SingleElement['smilie_icon'] . "\">";
}

$text = preg_replace($SmilieCode, $SmilieIcon, $text);


Folgende Warnmeldungen tauchen dann auf

Warning: preg_replace() [function.preg-replace]: Compilation failed: unmatched parentheses at offset 2 in

Warning: preg_replace() [function.preg-replace]: Compilation failed: missing ) at offset 3 in

kann es damit zusammen hängen das die Smilies nicht mit nem : anfangen bzw enden und dadur die / am ende und anfang unötig sind?

 
wahsaga
12-05-2005, 15:29 
 
Original geschrieben von st@tic
Warning: preg_replace() [function.preg-replace]: Compilation failed: unmatched parentheses at offset 2 in

Warning: preg_replace() [function.preg-replace]: Compilation failed: missing ) at offset 3 in
die runden klammern sind sonderzeichen, müssen also maskiert werden.

 
derHund
12-05-2005, 15:35 
 
kann es damit zusammen hängen das die Smilies nicht mit nem : anfangen bzw enden und dadur die / am ende und anfang unötig sind? ?

preg_quote

 
st@tic
12-05-2005, 15:44 
 
Original geschrieben von wahsaga
die runden klammern sind sonderzeichen, müssen also maskiert werden.

und wie mach ich das? mit dem backslash?

 
penizillin
12-05-2005, 15:47 
 
wird bei dir derHunds eintrag nicht angezeigt?

 
st@tic
12-05-2005, 15:51 
 
doch sorry steh voll aufm schlauch

Edit: gottseidank is das hier ein forum wo die meisten weit weit von mir weg wohnen. sonst würde ich jetzt garantiert von mindestens 4 leuten schon erschlagen worden sein.

es klappt jetzt alles einwand frei

 
wahsaga
12-05-2005, 15:55 
 
Original geschrieben von st@tic
Edit: gottseidank is das hier ein forum wo die meisten weit weit von mir weg wohnen. sonst würde ich jetzt garantiert von mindestens 4 leuten schon erschlagen worden sein.
irgendwann machen wir mal 'ne deutschlandtour, und holen das alles nach ...

 
penizillin
12-05-2005, 16:04 
 
:) auch den benji in bremen besuchen?


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:47 Uhr.