Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]eregi_replace
Forum PHP.pl > Forum > Przedszkole
crafter
Witajcie
Mam pytanko jak zamiecnić adres email wszukany w polu textarea czy tam fcku na ciąg <a href="mailto:adres@adres.pl">adres</a>
dzieki z góry
barthpl
No sposobów jest kilka. Na przykład tak lub tak jak w przykładach preg_replace " title="Zobacz w manualu PHP" target="_manual. Wyrażenie regularne dla maila ma postać:
  1. <?php
  2. $pattern = "/^([a-zA-Z0-9]+)([a-zA-Z0-9._-]*)@([a-zA-Z0-9_-]+)([a-zA-Z0-9._-]+)([a-zA-Z]+)$/";
  3. ?>

czyli naprzykład
  1. <?php
  2. $email = preg_replace ( $pattern, '[tu byl adres email]', $email);
  3. ?>


Jak powiesz na co chcesz zamienić to może jakiś konkretny kod ci podamy.
crafter
chodzi mi dokładnie o wyrażenie regularne czyli zeby kazdy ciag adresu email z pola textarea przerabial na cos takiego jak <a href="mailto:adres@adres.pl?subject=Temat%20maila&amp;body=A%20to%20w%20tre%C5%9Bci">xxxxxxxxxxx</a>
gdzie mailto to adres eamil subject to temat body to tresc i xxx - link (co ma sie wyslwietlc) jako link
barthpl
No to przecież taki sam problem jak http://forum.php.pl/index.php?showtopic=10...mp;#entry509688 (link do tego dostałeś wcześniej).

  1. <?php
  2. function mailTransformation( $matches )
  3. {
  4. $pattern = '<a href="%s?subject=%s&body=%s">%s</a>';
  5. return sprintf( $pattern, $matches[1], 'Temat maila', 'Treść maila', 'Nazwa linku' );
  6. }
  7.  
  8. $text = 'To jest jakis tam tekst z linkami do strony barthpl@barthpl.pl i dalej tekst';
  9.  
  10. $pattern = $pattern = "/(([a-zA-Z0-9]+)([a-zA-Z0-9._-]*)@([a-zA-Z0-9_-]+)([a-zA-Z0-9._-]+)([a-zA-Z]+))/i";
  11. $callback= "mailTransformation";
  12. echo $text = preg_replace_callback( $pattern, $callback, $text);
  13. ?>

w efekcie otrzymasz:
  1. To jest jakis tam tekst z linkami do strony <a href="barthpl@barthpl.pl?subject=Temat maila&body=Treść maila">Nazwa linku</a> i dalej tekst


O to chodziło questionmark.gif
crafter
tak dzieki
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.