WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   PHP: regexp "&" in "&" verwandeln (http://www.wcm.at/forum/showthread.php?t=140483)

Potassium 28.07.2004 13:15

PHP: regexp "&" in "&" verwandeln
 
servus
hab wieder mal ein prob mit regexp:
folgende
PHP-Code:

$body "[url='www.wcm.at/?action=show&UID02&gb=3']Gästebuch[/url]";

echo 
preg_replace("/&(^amp;)(^auml;)(^uuml;)(^ouml;)(^szlig;)(^pound;)(^copy;)(^lt;)(^gt;)(^nbsp;)(^cent;)(^iecl;)(.*?)/i""&",$body); 

sollte also alle normalen & in html & verwandeln in links damit das ganze schön xml konform ist. aber leider funktioniert es nicht. warum?

käptn 28.07.2004 13:38

...weil's komplett falsch ist...

http://php.net/pcre !


Sowas ähnliches müsste funktionieren:

/&(?!=(amp;|...|...))/

~

_m3 28.07.2004 14:04

Jup, RTFM waere hier zuerst mal angesagt. ;)

Potassium 28.07.2004 14:08

Zitat:

Original geschrieben von _m3
Jup, RTFM waere hier zuerst mal angesagt. ;)
hab ich getan :motz:
aber ich hab nix gefunden wie man was verneint außer ^ und das funtz ned so wie es soll :(

btw das obige funzt auch ned das verwandelt ja alle & in & so auch ä in ä

snowman 28.07.2004 14:32

Warum nicht htmlspecialchars?

gruss,
snowman

Potassium 28.07.2004 14:37

Zitat:

Original geschrieben von snowman
Warum nicht htmlspecialchars?

gruss,
snowman

weil das sämtliche links unbrauchbar macht :(
es wandelt die < und > in &lt etc um

btw: die php-forums-elite in einem thread :)

_m3 28.07.2004 14:44

Zitat:

Original geschrieben von Potassium
btw: die php-forums-elite in einem thread :)
Davon distanziere ich mich. Mit PHP will ich nix zu tun haben. :D

http://www.php.net/manual/de/pcre.pattern.syntax.php

Edit:
http://perl-seiten.bei.t-online.de/p...eg.html#suchop
http://www.oreilly.de/catalog/regexger/

käptn 28.07.2004 14:51

OMG

Anmerkung: das "=" war zuviel des Guten in meiner RegEx...

Hier eine für Entities, generell:
PHP-Code:

preg_replace('/&(?![[:alnum:]]+;)/''&amp;amp;'$str); 

EDIT: kruzzifixx, diese Smilies!

~

Potassium 28.07.2004 14:52

Zitat:

Original geschrieben von _m3
Davon distanziere ich mich. Mit PHP will ich nix zu tun haben. :D


jojo des wiss ma :D
war auf die andren beiden bezogen :hehe:

also entweder ich hätte heute länger schlafen sollen oder ich steh komplett auf der leitung aber da steht überall nur wie ich was finde aber ich will wenn er das NICHT findet das er etwas tut. :confused:

käptn 28.07.2004 14:55

@m3

Man sollte auch besser die Finger lassen wovon man keine Ahnung hat... ;) :p

~

snowman 28.07.2004 15:02

Ich fühl mich zwar geschmeichelt, jedoch zu einem php-experten fehlt doch viel; obwohl mehr brauch ich auch nicht für meine sites. ;-)

gruss,
snowman

Potassium 28.07.2004 15:13

Zitat:

Original geschrieben von käptn
OMG

Anmerkung: das "=" war zuviel des Guten in meiner RegEx...

Hier eine für Entities, generell:
PHP-Code:

preg_replace('/&(?![[:alnum:]]+;)/''&amp;amp;'$str); 

EDIT: kruzzifixx, diese Smilies!

~

BIG THX
(an alle)
nun funktioniers.
anmerkung: alnum is aber keien gute idee weil dann wandelt er nix mehr um wenn es zb heißt ?action=sonstwas&UID=23434&SID=343
weil ja SID auch alnum is ;)
aber man kann sie ja einzeln auschließen

käptn 28.07.2004 15:16

Wohl das Semikolon übersehen? ;)

EDIT: Vielleicht noch ein "#" in die Zeichenklasse, um numerische Entities auch auszuschließen.

~

Potassium 28.07.2004 15:21

Zitat:

Original geschrieben von käptn
Wohl das Semikolon übersehen? ;)

EDIT: Vielleicht noch ein "#" in die Zeichenklasse, um numerische Entities auch auszuschließen.

~

http://www.debattierclub.at/images/smiles/gnade.gif http://www.debattierclub.at/images/smiles/gnade.gif http://www.debattierclub.at/images/smiles/gnade.gif

käptn 28.07.2004 15:25

Recht so ;) :D

~


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag