Jörg Reinholz: Neues Bastelzeug: Vorwahlen zu Array (json, php)

Beitrag lesen

Also.

1. http://www.bundesnetzagentur.de/SharedDocs/Downloads/DE/Sachgebiete/Telekommunikation/Unternehmen_Institutionen/Nummerierung/Rufnummern/ONVerzeichnisse/ONBVerzeichnis/B-ListeOrtsnetzenumerisch.pdf?__blob=publicationFile&v=3

herunterladen. (wget ist eine gute Idee...)

2. Wer Linux und die pdf-Tools installiert hat:

pdftotext -raw B-ListeOrtsnetzenumerisch.pdf

Resultat ist eine neue Datei B-ListeOrtsnetzenumerisch.txt

3. Schnell und schmutzig:

<?php
define ( 'INFILE',       '/tmp/B-ListeOrtsnetzenumerisch.txt' );
define ( 'OUTFILE_CSV',  '/tmp/vw.csv' );
define ( 'OUTFILE_JSON', '/tmp/vw.json');
define ( 'OUTFILE_PHP', '/tmp/vw.var');
#define ( 'OUTFILE_JSON', false);

define('CSV_TR','|') ;
define('CSV_NL',"\n");

$arRaw=file(INFILE) or die ('Fatal: ' . INFILE . ' nicht lesbar.');
$vw_array=false;

        if (OUTFILE_CSV) {
            file_put_contents(OUTFILE_CSV, '', LOCK_EX);
        }


while ( $row = array_shift($arRaw) )  {
    $trow=trim($row);
    #echo $row, "\n";
    $vw=false;
    $bezirk=false;
    if ( preg_match('/^0\d{2,4}/', $row) ) {
        #Dieses Zeile ist eine Vorwahl
        $vw     = trim($row);
        # es gibt tatsächlich Einträge, da ist der Bezirk in einer Zeile mit der PLZ:
        $parts=false;
        $parts=preg_split('/ +/', $vw);
        if ( isset($parts[1]) ) {
            $vw=trim($parts[0]);
            $bezirk=trim($parts[1]);
        } else {
            $bezirk = array_shift($arRaw);
            $bezirk = trim($bezirk);
        }

        $arVw=str_split($vw,1);

        $arVwcount=count($arVw);
        echo $vw, ' | ', $arVwcount, ' | ', $bezirk , "\n";

        if ( 5 == $arVwcount ) {
            $vw_array[$arVw[0]][$arVw[1]][$arVw[2]][$arVw[3]][$arVw[4]]['txt'] = $bezirk;
        } else if ( 4 == $arVwcount ) {
            $vw_array[$arVw[0]][$arVw[1]][$arVw[2]][$arVw[3]]['txt'] = $bezirk;
        } else if ( 3 == $arVwcount ) {
            $vw_array[$arVw[0]][$arVw[1]][$arVw[2]]['txt'] = $bezirk;
        }

        if (OUTFILE_CSV) {
            file_put_contents(OUTFILE_CSV, $vw . CSV_TR . $bezirk . CSV_NL, FILE_APPEND|LOCK_EX);
        }
    }
}

if (OUTFILE_JSON) {
    file_put_contents(OUTFILE_JSON, json_encode ($vw_array), LOCK_EX);
}
if (OUTFILE_PHP) {
    file_put_contents(OUTFILE_PHP, '<?php $ar_vw_parts_ort = ' . var_export($vw_array, true) . ';', LOCK_EX);
}

##### Test:
include(OUTFILE_PHP);
echo $ar_vw_parts_ort[0][8][9]['txt'], "\n";

Download des Zeugs als zip, 136kb.

0 108

input type="tel"

Jule
  • html
  1. 1
    MrMurphy1
    1. -1
      Jule
      1. 0
        MrMurphy1
      2. 0
        Gunnar Bittersmann
        • ux
        1. 0
          Jörg Reinholz
          1. 0
            Jule
            1. 0
              Christian Kruse
            2. 3
              MrMurphy1
          2. 3

            Offtopic / Codeschnipsel-Sammlung

            Camping_RIDER
        2. -1
          Jule
          1. 1
            Jörg Reinholz
            1. -1
              Jule
              1. 1
                Christian Kruse
              2. 0
                Jörg Reinholz
                1. 0
                  Jule
                  1. 3
                    Jörg Reinholz
                2. 0

                  ftx_cleartel_test

                  Jule
                  • php
                  1. 0
                    Jörg Reinholz
                    1. 0
                      Jule
                      1. 0
                        Jörg Reinholz
                        1. -1
                          Jule
                          1. 1
                            Camping_RIDER
                    2. 0
                      Gunnar Bittersmann
                      • sonstiges
                      1. 0
                        Jule
                        1. 0
                          Camping_RIDER
                          1. 0
                            Der Martin
                          2. 2
                            MudGuard
                          3. 2
                            Gunnar Bittersmann
                            • programmiertechnik
                            1. 1
                              Jörg Reinholz
                              1. 0

                                Neues Bastelzeug: Vorwahlen zu Array (json, php)

                                Jörg Reinholz
                                1. 0

                                  Bugfix: Vorwahlen zu Array (json, php)

                                  Jörg Reinholz
                            2. 0
                              Jörg Reinholz
                            3. 0
                              dedlfix
                              1. 0
                                Camping_RIDER
                                1. 0
                                  dedlfix
                                  1. 0
                                    Camping_RIDER
                                    1. 0
                                      dedlfix
                                      1. 0
                                        Camping_RIDER
                                        1. 0
                                          dedlfix
                                          1. 0
                                            Camping_RIDER
                                          2. 0
                                            Jörg Reinholz
                                            1. 0
                                              Camping_RIDER
                                              1. 0
                                                Jörg Reinholz
                                                1. 0
                                                  Camping_RIDER
                                                  1. 1
                                                    Jörg Reinholz
                                                    1. 0
                                                      Jörg Reinholz
                                                      1. 2

                                                        PHP7 gegen PHP5 - Messung

                                                        Jörg Reinholz
                                                        1. 0

                                                          HHVM gegen PHP7 gegen PHP5 - Messung

                                                          Jörg Reinholz
                                              2. 0
                                                Christian Kruse
                                                1. 0
                                                  Camping_RIDER
                                                  1. 0
                                                    Christian Kruse
                                                    1. 0
                                                      Camping_RIDER
                                                      1. 0
                                                        Der Martin
                                                        1. 0
                                                          Camping_RIDER
                                                  2. 0
                                                    Christian Kruse
                                                    1. 0
                                                      Camping_RIDER
                                                      1. 1
                                                        Christian Kruse
                              2. 0
                                Jörg Reinholz
                                1. 0
                                  MudGuard
                                  1. 0
                                    Jörg Reinholz
                                    1. 0
                                      woodfighter
                      2. 2
                        Christian Kruse
                  2. 0
                    Camping_RIDER
                    1. 0
                      Gunnar Bittersmann
                      • sonstiges
                      1. 0
                        Camping_RIDER
                        1. 0
                          MudGuard
                        2. 0
                          Gunnar Bittersmann
                          1. 0
                            Jule
                            1. 1
                              Gunnar Bittersmann
                              1. 0
                                Jule
                                1. 0
                                  Gunnar Bittersmann
                                  1. 0
                                    Jule
                                    1. 0
                                      Gunnar Bittersmann
                          2. 0
                            Camping_RIDER
                        3. 0
                          Jule
                3. 0
                  Gunnar Bittersmann
              3. 0
                Der Martin
                1. 0
                  Jule
                  1. 0
                    Der Martin
                    1. 0
                      Camping_RIDER
                    2. 0
                      Gunnar Bittersmann
                      • sonstiges
  2. 0
    Gunnar Bittersmann
    1. 0
      Jule
    2. 0
      Gunnar Bittersmann
      1. 0
        Jule
        1. 1
          Der Martin
          1. 1
            Gunnar Bittersmann
            • sonstiges
            • ux
        2. 0
          Jörg Reinholz
  3. 2
    Christian Kruse
  4. 0

    Telefonnummer-Formatierer

    Jörg Reinholz
    1. 0
      Jörg Reinholz
      1. 0
        woodfighter
        1. 0
          Jörg Reinholz
        2. 0
          Auge
          1. 0
            dedlfix
            1. 0
              Auge
              1. 0
                MudGuard
                1. 0
                  Auge
                2. 0
                  dedlfix
      2. 0
        MudGuard
        1. 0
          Jörg Reinholz
          1. 0
            MudGuard
            1. 0
              Jörg Reinholz
              1. 0
                Auge
                • html
                • links
                1. 0
                  Jörg Reinholz
                  1. 0

                    Verschachtelte Datenstruktur vs Binäre Suche

                    Camping_RIDER
        2. 0
          MudGuard