User since
2008-08-08
1
Artikel
BenutzerIn
Moin,
ich bin ganz frisch bei Perl, hab vorher nur mit PHP/mysql gearbeitet. Jetzt arbeite ich aber mit dem CMS Imperia, und das benutzt Perl.
Meine Frage ist, wie ich in einen String bestimmte Zeichen durch andere ersetze. Hintergrund ist, dass ich E-Mailadressen durch HTML Entities ersetzen will, damit Spamharvester ein wenig mehr Probleme damit haben.
Die E-Mailadressen sind ja immer unterschiedlich lang und es muss auf das ganze Alphabet und . (Punkt) getestet werden und halt entsprechend ersetzt werden. Die E-Mailadresse werd ich wohl teilen, beim @ am besten, dann muss ich das nicht mit reinnehmen.
Gibt's für's Ersetzen wie ich's will ne Funktion?
User since
2003-08-07
2921
Artikel
BenutzerIn
Du kannst es entweder mit regulären Ausdrücken machen (googlen nach regex) oder du nimmst ein Modul, dass dir auch noch die Arbeit abnimmt, für die ganzen Zeichen eigenhändig die Entities zu ersetzen:
HTML::Entities
Eine einfache Substitution kannst du so machen:
my $string = "abc";
$string =~ s/a/xx/g; ersetze alle a durch zwei x.
Mehr dazu gibts in der perlfunc:
http://perldoc.perl.org/perlfaq6.html
Probiers mal aus, wenn du noch Fragen hast, frag hier :)
User since
2003-10-20
496
Artikel
BenutzerIn
Ich würde HTML::Entities benutzen.
use strict;
use warnings;
use HTML::Entities ();
my $mailaddress = "micky.miller\@foo.bar";
HTML::Entities::encode($mailaddress);
HTML::Entities::decode($mailaddress);