[PHP] str_replace() of explode() ??

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Zenda
  • Registratie: Oktober 2001
  • Laatst online: 06-09 16:17

Zenda

goes milk!

Topicstarter
Hey..

Ik kan nog geen GD op mijn server gebruiken om e-mail adressen te voorzien van anti-spam, maar wou het nu anders oplossen, en dit dmv 2 spaties..
--
voorbeeld: naam @ domain.nl
--

Ik kan dit dus met str_replace() doen, of met explode()..

<?
// rechstreeks
$email = str_replace("@", " @ ", $email);
?>
of
<?
// via de array $email
$email = explode("@", $email);
?>

Maar nu is mijn vraag, welke is sneller en word over het algemeen het meest gebruikt?? Ik heb namelijk ook een pagina, waarbij ik meer dan 2500 leden toon, nickname + email adres, en dit maakt natuurlijk wel uit voor de laad tijd .. :) Alvast bedankt..

Zenda likes some milk every now and then..


Acties:
  • 0 Henk 'm!

Verwijderd

Ik schat dat de replace een stuk sneller is ... maar ik zou het gewoon ff testen

Acties:
  • 0 Henk 'm!

Verwijderd

Waarom test je het niet gewoon door dit uit te voeren op een populatie :?

Overigens is str_replace gok ik sneller, aangezien dat een aantal stappen overslaat die je anders moet doen en die voor je gedaan worden, maar ik doe eigenlijk niet echt veel aan PHP, dus mijn oordeel in deze is nou niet echt de meest betrouwbare :+

[ Voor 18% gewijzigd door Verwijderd op 13-01-2003 21:10 ]


Acties:
  • 0 Henk 'm!

Verwijderd

k zou gewoon in 1x met str_replace("@", " @ ", $email) doen...

of nog blijer :D @ veranderen in [at]
en . in [dot]
weet je zeker dat je geen spam hebt :D

omgekeerd werkt trouwes ook he...
de spammert leest "email @ host.nl"
doet str_replace (" @ ", "@", $email) en klaar is de spammert..

Naja kijk maar ff wat je r mee doet,

GreetZ

Acties:
  • 0 Henk 'm!

  • Zenda
  • Registratie: Oktober 2001
  • Laatst online: 06-09 16:17

Zenda

goes milk!

Topicstarter
tnx voor de reacties :)

Zenda likes some milk every now and then..


Acties:
  • 0 Henk 'm!

Verwijderd

Ik doe 't meestal gewoon met javascript, anti-spam en geen vraag welke functie sneller is ;)

code:
1
2
3
4
5
6
7
8
9
<script>
<!--
var naam = 'jan';
var at = '@';
var adres = 'home.nl';

document.write('<a href="mailto:' + naam + at + adres + '">Mail Jan</a>');
-->
</script>

Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op 13 januari 2003 @ 21:21:
Ik doe 't meestal gewoon met javascript, anti-spam en geen vraag welke functie sneller is ;)

[knip code]

Mjah en wat is daar beter aan qua anti-spam dan :? :)

Acties:
  • 0 Henk 'm!

Verwijderd

Heb ik dan gezegd dat het beter was? ;)

'T was gewoon als alternatief bedoeld :)

[ Voor 44% gewijzigd door Verwijderd op 13-01-2003 22:38 ]


Acties:
  • 0 Henk 'm!

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Verwijderd schreef op 13 januari 2003 @ 21:24:
Mjah en wat is daar beter aan qua anti-spam dan :? :)

Spam indexing bots zijn niet JavaScript enabled lijkt me. Ze halen alleen de html op, proberen te regexen op een e-mail expressie of op een mailto: tag.
Dat gaat ze in dit geval niet lukken

Acties:
  • 0 Henk 'm!

  • Rotjeknor
  • Registratie: April 2001
  • Laatst online: 01-04-2023
Wat volgens mij nog de makkelijkste methode is, is het emailadres binnen de href="mailto:" als hex code te zetten. Zo goed ik weet -maar correct mij als dit niet klopt- is dit na een plaatje te laten zien de beste methode.

Ook Knor is aangestoken met het ligfietsvirus!


Acties:
  • 0 Henk 'm!

Verwijderd

Rotjeknor schreef op 13 January 2003 @ 22:42:
Wat volgens mij nog de makkelijkste methode is, is het emailadres binnen de href="mailto:" als hex code te zetten. Zo goed ik weet -maar correct mij als dit niet klopt- is dit na een plaatje te laten zien de beste methode.
Had gedacht dat dat niet zou werken, maar het werkt toch (iig met outlook express) :)

Heb direct ook ff de punt veranderd in de hexcode, al hoeft dat weinig uit te maken:

code:
1
<a href="mailto:jan@home.nl">jan@home.nl</a>

Werkt prima en het is een stukkie korter/makkelijker dan met javascript of php en waarschijnlijk ook sneller ;)

[ Voor 25% gewijzigd door Verwijderd op 14-01-2003 09:17 . Reden: Toevoeging... ]


Acties:
  • 0 Henk 'm!

  • TheDane
  • Registratie: Oktober 2000
  • Laatst online: 11:54

TheDane

1.618

gewoon geen email adres tonen, klaar.

volgens mij is 't zelfs in strijd met de wet op de Privacy om zomaar email adressen van je bezoekers te tonen, zonder dat ze hier zelf iets aan kunnen doen.

maak dus gewoon een scriptje waarmee je mail kunt versturen naar een adres op de achtergrond.

Acties:
  • 0 Henk 'm!

Verwijderd

Diegene geeft het e-mail adres vrijwillig op (als't goed is tenminste), dus ik denk dat het wel meevalt met die wet...

[ Voor 13% gewijzigd door Verwijderd op 14-01-2003 11:16 ]


Acties:
  • 0 Henk 'm!

  • TheDane
  • Registratie: Oktober 2000
  • Laatst online: 11:54

TheDane

1.618

Verwijderd schreef op 14 januari 2003 @ 11:16:
Diegene geeft het e-mail adres vrijwillig op (als't goed is tenminste), dus ik denk dat het wel meevalt met die wet...
mwah, ben ik niet helemaal met je eens. vooral in de virtual community omgeving is een email adres gewoon verplicht, vooral om je account info (password) naartoe te sturen. (zie GoT; geen geldig email adres -> geen account)

Je kunt op GoT toch ook zelf aangeven of je email adres openbaar is of niet?

user in full control

Acties:
  • 0 Henk 'm!

  • Altaphista
  • Registratie: Juli 2001
  • Laatst online: 12:50

Altaphista

1. check manual, 2. ask

Met de aanroep: <a href="antispam.php?m1=jan&m2=domein&m3=nl" target="_blank">mailadres</a>

antispam.php:
PHP:
1
header("Location:mailto:".$m1."@".$m2.".".$m3);

Je gaat het pas zien als je het doorhebt.


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
en wat als de hostname ook nog een subdomein bevat? ;)

Anyway, antwoord op de vraag: str_replace zal wel sneller zijn, maar het is sowieso een verwaarloosbaar verschil en je kan dus gewoon beter toepassen wat je makkelijker vindt.

Glimi schreef op 13 januari 2003 @ 22:41:
Spam indexing bots zijn niet JavaScript enabled lijkt me. Ze halen alleen de html op, proberen te regexen op een e-mail expressie of op een mailto: tag.
Dat gaat ze in dit geval niet lukken

Ik denk dat ze eerder op leuke email-like-regexpes zoeken dan dat ze echt op html zoeken :)

[ Voor 47% gewijzigd door ACM op 14-01-2003 14:03 ]


Acties:
  • 0 Henk 'm!

  • Norckon
  • Registratie: September 2000
  • Laatst online: 01-09 21:26
AccesS_DeniEd schreef op 13 januari 2003 @ 21:15:
k zou gewoon in 1x met str_replace("@", " @ ", $email) doen...

of nog blijer :D @ veranderen in [at]
en . in [dot]
weet je zeker dat je geen spam hebt :D

omgekeerd werkt trouwes ook he...
de spammert leest "email @ host.nl"
doet str_replace (" @ ", "@", $email) en klaar is de spammert..

Naja kijk maar ff wat je r mee doet,

GreetZ
ohja en
str_replace("[at]", "@", $email) en str_replace("[dot]", ".", $email)
werkt zeker niet? :)

Die [at]-methode is nu zoveel gebruikt dat die harversters daar wel op gaangepast zijn (denk ik).

(sorry voor offtopic :P)

Acties:
  • 0 Henk 'm!

Verwijderd

ACM schreef op 14 January 2003 @ 14:02:
Ik denk dat ze eerder op leuke email-like-regexpes zoeken dan dat ze echt op html zoeken :)

Dat denk ik dus ook.

Tenminste als ik zo'n ding zou moeten schrijven, dan interesseert het me niet of het html, xml, js, javascript is wat ik zou openen. Ik zou gewoon gaan zoeken naar e-mail achtige patronen. Het voordeel van javascript is natuurlijk wel dat je een functie dusdanig op kunt stellen, dat er niet/nauwelijks automatisch te herkennen is dat het om e-mail adressen gaat.

Maar goed, dat is allemaal nogal offtopic :)

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
Norckon schreef op 14 January 2003 @ 17:42:
ohja en
str_replace("[at]", "@", $email) en str_replace("[dot]", ".", $email)
werkt zeker niet? :)

Die [at]-methode is nu zoveel gebruikt dat die harversters daar wel op gaangepast zijn (denk ik).

(sorry voor offtopic :P)

Doe dan:
str_replace(array('[op]', '[punt]'), array('@', '.'), $email);

de meeste spam-zoekers zijn engels, dus nederlandse woorden erin wordt nog vervelender eruit zoeken ;)

Acties:
  • 0 Henk 'm!

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
ACM schreef op 14 January 2003 @ 14:02:
Ik denk dat ze eerder op leuke email-like-regexpes zoeken dan dat ze echt op html zoeken :)

Dat vermeld ik toch ook? (ik heb zo'n we lullen langs elkaar heen idee) Het punt met zo'n javascript oplossing is dat je het e-mail patroon uit elkaar trekt. Dit patroon zal door de browser (de javascript VM eigenlijk) weer gerestaureerd worden tot een geheel adres.
Spambots zullen dit niet doen. Die halen alleen de pagina op (HTML/XHTML, whatever) op en scannen op e-mail patterns en evt ( als de pagina HTML/XHTML blijkt te zijn), ook nog op de mailto: tag.
Beiden zullen het e-mail adres niet kunnen vinden als zodanig
Pagina: 1