Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Zakodowanie adresu e-mail
Forum PHP.pl > Forum > PHP
cafepl_com
Witam,

wpadłem na pomysł, aby automatycznie kodować adresy e-mail za pomocą PHP. Napisałem takie coś:

  1. <?php
  2. function strtoentity($input)
  3. {
  4. foreach (str_split($input) as $obj)
  5. {
  6. $output .= "&#".ord($obj).";";
  7. }
  8. return $output;
  9. }
  10.  
  11.  
  12.  
  13. $tekst = "tekst teskt tekst tesktekst tesktekst tesk info@infooo.pl tekst tesk tekst tesk tekst tesk<br />test@testl.pl";
  14. $wzorzec = '/[a-zA-Z0-9.\-_]+@[a-zA-Z0-9\-.]+\.[a-zA-Z]{2,4}/';
  15.  
  16. echo preg_replace($wzorzec, strtoentity('\0'), $tekst);
  17. ?>


przykładowo: adres e-mail info@infooo.pl przyjmie postać info@infooo.pl
Działanie:
- najpierw znajduje adres e-mail w danym stringu
- następnie uruchamia funkcję strtoentity(), której zadaniem jest zamiana każdego znaku z tego adresu na wartość ASCII.

Problem polega na tym, że funkcja zamiast zwracać zakodowany adres, zwraca zakodowane \0. Problem zapewne banalny, ale jakoś nie potrafię sobie z nim poradzić.
Proszę o pomoc.
muk4
Może tak:
  1. preg_match($wzorzec, $tekst, $found);
  2. $encoded = strtoentity($found[0]);
  3. echo $encoded; //zakodowany adres
cafepl_com
Ale to zwróci jedynie znaleziony adres e-mail i zakoduje go. Chodzi mi o to, żeby wyszukał wszystkie adresy e-mail ze stringu, zakodował je i żeby pojawił się już gotowy tekst z zakodowanymi adresami. Takie coś już napisałem, problem tkwi jedynie w ', \, \0
Neo
  1. <?php
  2. function strtoentity($input)
  3. {
  4. $input = $input[0];
  5. foreach (str_split($input) as $obj)
  6. {
  7. $output .= "&#".ord($obj).";";
  8. }
  9. return $output;
  10. }
  11.  
  12.  
  13.  
  14. $tekst = "tekst teskt tekst tesktekst tesktekst tesk info@infooo.pl tekst tesk tekst tesk tekst tesk<br />test@testl.pl";
  15. $wzorzec = '/[a-zA-Z0-9.\-_]+@[a-zA-Z0-9\-.]+\.[a-zA-Z]{2,4}/';
  16.  
  17. echo preg_replace_callback($wzorzec, 'strtoentity', $tekst);
  18. ?>


preg_replace_callback
cafepl_com
O to chodziło smile.gif Bardzo dziękuję i pozdrawiam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.