Faxnummer mit PHP formatieren

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Faxnummer mit PHP formatieren

    Hi zusammen,

    Ich habe ein kleines Formular:

    Quellcode

    1. <form name="formatnumber" action="<? echo $PHP_SELF; ?>" method="post">
    2. <input name="faxnumber" type="text" id="faxnumber">
    3. <input type="submit" name="button" value="Abschicken">
    4. </form>


    Und dann folgenden PHP Code:

    Quellcode

    1. <?
    2. $gesucht= array("0049", "+49", "00 49", " ", "-");
    3. $richtig= array("49", "49", "49", "", "");
    4. $final = str_replace($gesucht,$richtig,$faxnumber);
    5. echo "<p><b>$final</b></p>";
    6. ?>


    Wie nun kann ich es anstellen das diese Regeln nicht "nur" auf 49 sondern eben auf alle Landesvorwahlen angewendet werden?

    Danke vorab,

    Matthias
    Das Leben ist binär - du bist eine 1, oder eine 0
  • Du willst die Ländervorwahlen quasi immer auf 2 Stellen beschränken, ich würde das 1. schon bei der Eingabe in dem Formular abfangen, das man nur 2 Stellen eingeben kann, somit sparst du dir in Zukunft die ersetzung.

    Wenn du es jedoch ersetzen willst würde ich mit "count" (http://de.php.net/count) arbeiten.

    Also zählen, dann mit switch & case abfragen und die Entsprechende Differenz zwischen 2 und x davor löschen.

    Alternativ kannst es so machen dass du alle länder + vorwahl in einer DB abspeicherst... somit gehts auch das du dann vergleichst und dem entsprechend ersetzt. (so habe ich es mit Banken und Bankleitzahlen gemacht) dessweiteren kannst du dann gleich bei der Eingabe prüfen ob es die vorwahl überhaupt gibt.

    Hoffe das hilft dir etwas weiter

    so long
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert, der letzte Netzknoten kommerzialisiert, die letzte Newsgroup moderiert wird, werdet Ihr merken, dass man mit Geld allein nicht programmieren kann.
  • Du solltest das besser mit regulären Ausdrücken machen.

    z.B. für folgendes Format +49 1611 1276311

    länderprefix: (00|+|00 )\d{2}
    vorwahl \d+
    rufnummer \d+

    Es gibt aber das Problem, dass es viele Möglichkeiten gibt eine Telefonummer einzugeben.

    Google mal nach [google]regex phone number[/google]
    Es gibt beliebig komplizierte Möglichkeiten.

    Als Funktion verwendest du hierzu [phpdoc]preg_match[/phpdoc]