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
Du meinst wohl preg_replace ;)
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);
Quote
Original von xyz-70
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);
xyz-48n poste mal die no_spam() function.
Ah.. *bongo*
Den zweiten Parameter musst rausnehmen, die Ersetzung wird ja dann vom Callback übernommen.
& wie? so gehts nicht...
$text = preg_replace_callback("/\[email=(.*?)\](.*?)\[\/email\]/si",
"<a href=\"mailto:\\1\"></a>", 'no_spam', $text);
Is doch genau dasselbe.. den zweiten Parameter / das zweite Argument sollst rausnehmen.
poste doch bitte mal den code ichverstehe jetztnicht genau wie du das meinst.
Quote
Original von xyz-70
poste doch bitte mal den code ichverstehe jetztnicht genau wie du das meinst.
$text = preg_replace_callback("/\[email=(.*?)\](.*?)\[\/email\]/si",'no_spam', $text);
das ergibt eine falsche ausgabe...:
[email=email[ät] email[punkt] org]xyz-70[/email]] <-- = dieHTML ausgabe
ich will ja dass die emailadresse anders dargestellt wird und ein anderer linkname angezeigt wird.
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 <$1 bei $2 punkt $3>',
$text
);
jo das funktioniert zwar aber eigentlich was anderes.. und zwar: sowas [EMAIL=hallu@tschuess.de]EMAIL[/EMAIL] nur eben "verschlüsselt"
Wenn du die Adresse im Klartext rausgibst, bringt doch das "Verschlüsseln" nix.. :-\
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?)