tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
3506
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    shorty shorty ist offline Mitglied Brokat
    Registriert seit
    Apr 2002
    Ort
    Lübeck
    Beiträge
    330
    Hi,
    ich wollte mal fragen, ob es ne Möglichkeit gibt, ein Datum mit Hilfe von preg_replace() durch einen bestimmten Text zu ersetzen?

    Bsp.: 1.12.2003 soll durch "Datum" oder irgendeinen anderen Text ersetzt werden.

    Könnte mir jemand dazu vielleicht einen Link zur "Definition" von preg_replace() geben?

    Danke schonmal im Vorraus.

    Mfg Shorty

    edit:
    habe mal versucht, das selber zu machen und zwar mit diesem Code hier:

    PHP-Code:
    $post['message']=preg_replace("/([0-9]{1,2})+(.)+([0-9]{1,2})+(.)+([0-9]{1,4})/""Datum"$post['message']); 
    Allerdings wird dann, wenn unter dem Datum noch ein Text steht, der ganze Text mit durch das Wort "Datum" ersetzt. Ich weiss nicht mehr, wie ich das sonst noch anstellen soll, so dass nur das Datum ersetzt wird . Hat keiner ne Idee?
    Geändert von shorty (22.11.03 um 04:13 Uhr)
     

  2. #2
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Könntest du bspw. so machen...
    PHP-Code:
    <?php
    function isDate($date)
    {
    $parts=explode('.',$date);
    $months=array(0,31,29,31,30,31,30,31,31,30,31,30,31);
    $dd=(int)$parts[0];$mm=(int)$parts[1];$yyyy=(int)$parts[2];
    if(!
    $dd||!$mm||!$yyyy){return $date;}
    if(@
    mktime(0,0,0,$mm,$dd,$yyyy)<1){return $date;}
    if(
    $dd>$months[$mm]){return $date;}
    if(
    $mm==2&&$dd==29){
    if(
    $yyyy%4){return $date;}
    if(!
    $yyyy%100&&$yyyy%400){return $date;}
    }return 
    '[Datum]';
    }
    $txt=preg_replace("/(\D?)(\d?\d\.\d?\d\.\d{4})(\D?)/e","'\\1'.isDate('\\2').'\\3'",$txt);echo $txt;
    ?>
    ...der Ausdruck sucht erstmal nach Zeichenketten in $txt, welche dem Muster entsprechen. Findet er eine, wird noch überprüft, ob es ein gültiges Datum ist (wäre ja denkbar, dass eine andere Zeickenkette,bspw. ne IP-Adresse, dem Muster entspricht)... wenn ja, wird der String durch [Datum] ersetzt.

    Infos zu preg_replace() findest du im im PHP-Handbuch auf www.php.net(bin zu faul, den genauen Link herauszusuchen ) ...
    Weiteres zu regulären Ausdrucken gibts z.B. bei SelfHTML
     

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 21.04.10, 12:46
  2. Antworten: 3
    Letzter Beitrag: 22.12.08, 08:32
  3. Antworten: 2
    Letzter Beitrag: 05.10.08, 17:14
  4. Antworten: 7
    Letzter Beitrag: 18.12.05, 14:35
  5. Heutiges Datum durch Heute ersetzen
    Von PHPlehrling im Forum PHP
    Antworten: 2
    Letzter Beitrag: 22.04.03, 14:30