Willkommen in der Webstatt Zum Webstatt Blog und Stories
fish fish am 02.09.06 17:13

hallo liebe phpfreunde.

ich bin gerade dabei die antispam - funktion in die php4u.net bbcodesfunktion einzubauen

geht aber nicht so wie ich das will.. hier scheitere ich..

$text = preg_replace_callback("/\[email=(.*?)\](.*?)\[\/email\]/si", "<a href=\"mailto:\\1\">\\2</a>", 'no_spam', $text);

fehler:
Warning: preg_replace_callback(): requires argument 2, '\2', to be a valid callback in BBcodes\php4u\index.php on line 167 no_spam

netcup.de Warum gibt es hier Werbung?
milahu milahu am 02.09.06 17:23

Du meinst wohl preg_replace ;)

fish fish am 02.09.06 17:29

nö glaibe nicht. der text der emailadresse soll ja umgewandelt werden.
so wie ich es hier gemacht habe
$text = preg_replace_callback('"([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})"i', 'no_spam', $text);

Black am 02.09.06 17:57

Quote
Original von fish
nö glaibe nicht. der text der emailadresse soll ja umgewandelt werden.
so wie ich es hier gemacht habe
$text = preg_replace_callback('"([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})"i', 'no_spam', $text);

Dann poste mal die no_spam() function.

der_nic der_nic am 02.09.06 18:01

Quote
Original von Black
Dann poste mal die no_spam() function.

antispam;)

milahu milahu am 02.09.06 18:02

Ah.. *bongo*

Den zweiten Parameter musst rausnehmen, die Ersetzung wird ja dann vom Callback übernommen.

fish fish am 02.09.06 18:11

& wie? so gehts nicht...
$text = preg_replace_callback("/\[email=(.*?)\](.*?)\[\/email\]/si",
"<a href=\"mailto:\\1\"></a>", 'no_spam', $text);

milahu milahu am 02.09.06 19:07

Is doch genau dasselbe.. den zweiten Parameter / das zweite Argument sollst rausnehmen.

fish fish am 02.09.06 19:15

poste doch bitte mal den code ichverstehe jetztnicht genau wie du das meinst.

Black am 02.09.06 19:22

Quote
Original von fish
poste doch bitte mal den code ichverstehe jetztnicht genau wie du das meinst.

$text = preg_replace_callback("/\[email=(.*?)\](.*?)\[\/email\]/si",'no_spam', $text);

fish fish am 02.09.06 19:24

das ergibt eine falsche ausgabe...:
[email=email[ät] email[punkt] org]fish[/email]] <-- = dieHTML ausgabe

ich will ja dass die emailadresse anders dargestellt wird und ein anderer linkname angezeigt wird.

milahu milahu am 02.09.06 19:47

RTFM... http://de3.php.net/preg_replace_callback

Aber wär's ohne callback nicht einfacher..?

$text = preg_replace(
"/\[email=(\w+?)@(\w+?)\.(\w+?)\](.*?)\[\/email\]/si",
'$4 &lt;$1 bei $2 punkt $3&gt;',
$text
);

fish fish am 02.09.06 20:19

jo das funktioniert zwar aber eigentlich was anderes.. und zwar: sowas [EMAIL=hallu@tschuess.de]EMAIL[/EMAIL] nur eben "verschlüsselt"

milahu milahu am 02.09.06 23:10

Wenn du die Adresse im Klartext rausgibst, bringt doch das "Verschlüsseln" nix.. :-\

fish fish am 03.09.06 02:02

wenn ich no spam verwende zeigt der link für den browser: mailto:franz%40ferdinand.de und nicht mailto: [EMAIL]franz@ferdinand.de[/EMAIL]

(drücke ich mich soo schlecht aus?)

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt