Пример #1
0
 /**
  * @param string $url_to_read
  * @param string $username
  * @param string $password
  * @param int $timeout
  * @return string
  */
 public static function load_file($url_to_read, $username = "", $password = "", $timeout = 30)
 {
     $i = 0;
     do {
         $ch = curl_init();
         if ($username != "" || $password != "") {
             curl_setopt($ch, CURLOPT_USERPWD, "{$username}:{$password}");
         }
         curl_setopt($ch, CURLOPT_URL, $url_to_read);
         curl_setopt($ch, CURLOPT_HEADER, 0);
         curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
         curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
         curl_setopt($ch, CURLOPT_USERAGENT, RISTools::STD_USER_AGENT);
         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
         curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
         $text = curl_exec($ch);
         $text = str_replace(chr(13), "\n", $text);
         //$info = curl_getinfo($ch);
         curl_close($ch);
         $text = RISTools::toutf8($text);
         if (!defined("VERYFAST")) {
             sleep(1);
         }
         $i++;
     } while (strpos($text, "localhost:8118") !== false && $i < 10);
     return $text;
 }
Пример #2
0
 public static function suche_strassen($str)
 {
     static::init_streets();
     $antragtext = static::ris_street_cleanstring($str);
     $streets_found = [];
     foreach (static::$STREETS as $street) {
         $offset = -1;
         $last_offset = -1;
         while ($offset + 3 < mb_strlen($antragtext) && ($offset = mb_strpos($antragtext, $street->name_normalized, $offset + 1)) !== false) {
             if ($offset == $last_offset) {
                 $offset += 10;
                 continue;
             }
             $danach = mb_substr($antragtext, $offset + mb_strlen($street->name_normalized), 10);
             $nr = IntVal($danach);
             $ort = $nr > 0 && $nr < 1000 ? $street->name . " {$nr}" : $street->name;
             $falsepositive = false;
             if (mb_substr($antragtext, $offset - 11, 11) == "haltestelle") {
                 $falsepositive = true;
             }
             if ($street->name_normalized == "richardstr" && mb_substr($danach, 0, 2) == "au") {
                 $falsepositive = true;
             }
             if (!$falsepositive && !in_array($ort, $streets_found)) {
                 $streets_found[] = RISTools::toutf8($ort);
             }
             for ($i = $offset; $i < $offset + mb_strlen($street->name_normalized); $i++) {
                 $antragtext[$i] = "#";
             }
             $last_offset = $offset;
         }
     }
     $streets_found_consolidated = [];
     foreach ($streets_found as $street) {
         $street_short = str_replace([" str", "-str"], ["str", "str"], mb_strtolower($street));
         $laengeres_gefunden = false;
         foreach ($streets_found as $street_cmp) {
             $street_cmp_short = str_replace([" str", "-str"], ["str", "str"], mb_strtolower($street_cmp));
             if (mb_strpos($street_cmp_short, $street_short) !== false && mb_strlen($street_short) < mb_strlen($street_cmp_short)) {
                 $laengeres_gefunden = true;
             }
         }
         if ($laengeres_gefunden) {
             continue;
         }
         if (preg_match("/[0-9]/siu", $street)) {
             $streets_found_consolidated[] = $street;
         } else {
             $mit_hausnummer_gefunden = false;
             foreach ($streets_found as $street2) {
                 if (mb_strpos($street2, $street . " ") === 0 && preg_match("/[0-9]/siu", $street2)) {
                     $mit_hausnummer_gefunden = true;
                 }
             }
             if (!$mit_hausnummer_gefunden) {
                 $streets_found_consolidated[] = $street;
             }
         }
     }
     return $streets_found_consolidated;
 }