Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

PHP preg_replace: telefonnummern und emails ersetzen?

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
nerd
PostRank 10
PostRank 10
Beiträge: 4023
Registriert: 15.02.2005, 04:02

Beitrag von nerd » 29.12.2008, 09:40

hallo,

kann mir jemand auf die schnelle sagen wie man telefonnummern und emails in einem string mit * ersetzt? meine versuche hier haben ebenfalls jahreszahlen mit ersetzt :(

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Hobby_SEO79
PostRank 9
PostRank 9
Beiträge: 1883
Registriert: 19.06.2008, 23:09

Beitrag von Hobby_SEO79 » 29.12.2008, 09:59

Erläuter das mal bitte näher!

Wann ersetzen? Bei der Eingabe? Beim Auslesen aus der Datenbank? Beim Speichern? Auch mal den Syntax posten wie die Nummern und Adressen eingetippt werden sollen und Kontrollalgos nennen die du schon zur Kontrolle einsetzt.

nerd
PostRank 10
PostRank 10
Beiträge: 4023
Registriert: 15.02.2005, 04:02

Beitrag von nerd » 29.12.2008, 13:04

ersetzt werden soll innerhalb eines textes. das ist so eine art kommentar und manche user hinterlassen da email und/oder tel nummer - was da auch sinn macht. lediglich wenn bots (egal welcher art) vorbei kommen, moechte ich die emails und tel nummern ausblenden.

Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 29.12.2008, 13:28

Also bezüglich Email kannst Du so etwas in der Art nehmen.

Code: Alles auswählen

<?
$regexp = "/&#40;&#91;_a-z0-9-&#93;+&#41;&#40;\.&#91;_a-z0-9-&#93;+&#41;*@&#40;&#91;a-z0-9-&#93;+&#41;&#40;\.&#91;a-z0-9-&#93;+&#41;*&#40;\.&#91;a-z&#93;&#123;2,4&#125;&#41;/Uis";
$string = 'das ist ein Text @gmx.de mit einer email was-weis-denn-ich@web.de mitten drin';

$string_neu = preg_replace&#40;$regexp, '<b>&#91;Email entfernt&#93;</b>', $string&#41;;

echo $string.'<br />';
echo $string_neu.'<br />';
?>
Läuft so zumindest bei mir teilweise. Die "regexp" könnte aber eventuell verbessert werden.

Bezüglich Telefonnummern dürfte es schwer werden wenn Du da keine feste Formatvorgabe hast. Kannst an sich nur nach Zahlenketten suchen und die bekannten Jahreszahlen davon ausschließen. Natürlich aber auch die Schreibweisen mit / oder - oder auch Leerzeichen beachten. Ich für meinen Fall hab es aufgegeben, war mir zu ungenau.

Hobby_SEO79
PostRank 9
PostRank 9
Beiträge: 1883
Registriert: 19.06.2008, 23:09

Beitrag von Hobby_SEO79 » 29.12.2008, 16:11

bei telefonnummern könnte man über die zahlenlänge etwas regeln und sonderzeichen ()/- isolieren.

Mal hier mit der google-Suche anfangen:
https://www.google.de/search?num=100&hl ... uche&meta=

nerd
PostRank 10
PostRank 10
Beiträge: 4023
Registriert: 15.02.2005, 04:02

Beitrag von nerd » 29.12.2008, 21:39

Synonym hat geschrieben:Also bezüglich Email kannst Du so etwas in der Art nehmen.

Code: Alles auswählen

<?
$regexp = "/&#40;&#91;_a-z0-9-&#93;+&#41;&#40;\.&#91;_a-z0-9-&#93;+&#41;*@&#40;&#91;a-z0-9-&#93;+&#41;&#40;\.&#91;a-z0-9-&#93;+&#41;*&#40;\.&#91;a-z&#93;&#123;2,4&#125;&#41;/Uis";
$string = 'das ist ein Text @gmx.de mit einer email was-weis-denn-ich@web.de mitten drin';

$string_neu = preg_replace&#40;$regexp, '<b>&#91;Email entfernt&#93;</b>', $string&#41;;

echo $string.'<br />';
echo $string_neu.'<br />';
?>
Läuft so zumindest bei mir teilweise. Die "regexp" könnte aber eventuell verbessert werden.
dankeschoen!

klugscheissernachtrag: mit

Code: Alles auswählen

$regexp = "/&#91;A-Z0-9._%+-&#93;+@&#40;?&#58;&#91;A-Z0-9-&#93;+\.&#41;+&#91;A-Z&#93;&#123;2,4&#125;$/Uis"; 
nimmt es auch die komplette tld mit - im o.g. beispiel blieb bei @hotmail.com immer "m" am ende stehen. 8)

Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 29.12.2008, 22:20

Ah, ich sag doch die könnte besser sein ;-)

Allerdings hatte ich sie ein wenig geändert. Ohne den Modifikator "U" geht es auch mit der genannten com-Domain.

Code: Alles auswählen

$regexp = "/&#40;&#91;_a-z0-9-&#93;+&#41;&#40;\.&#91;_a-z0-9-&#93;+&#41;*@&#40;&#91;a-z0-9-&#93;+&#41;&#40;\.&#91;a-z0-9-&#93;+&#41;*&#40;\.&#91;a-z&#93;&#123;2,4&#125;&#41;/is";
alternativ auch die

Code: Alles auswählen

$regexp = "/&#40;&#91;_a-z0-9-&#93;+&#41;&#40;\.&#91;_a-z0-9-&#93;+&#41;*@&#40;&#91;a-z0-9-&#93;+&#41;&#40;\.&#91;a-z0-9-&#93;+&#41;*&#40;\.&#91;a-z&#93;&#123;2,4&#125;?&#41;/Uis";
und was mir auffällt, die tld kann ja seit einiger Zeit auch länger sein, also eher kein {2,4}, sondern eher ein {2,6} oder gibt es noch was längeres wie .travel ?

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag