Ankündigung

Einklappen
Keine Ankündigung bisher.

ereg_replace -> php7

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • ereg_replace -> php7

    Hallo,

    nachdem mein HP-Anbieter auf php7 umgestellt hat funktioniert mein script nicht mehr.

    Ich verstehe den neuen Befehl preg_replace im Zusammenhang innerhalb meines Scriptes (an zwei Stellen, rot markiert) nicht so ganz.

    Vielleicht kann da einer kurz drüberschauen? Wäre nett, danke.



    <?php
    //online user auslesen
    $daten = "../anzeige.txt";
    $time = time();
    $ip = getenv("REMOTE_ADDR");
    $ablaufzeit = $time - "30";
    $pruefung = @file($daten);

    while (list ($line_num, $line) = @each ($pruefung)) {
    $zeiten = explode("&&",$line);
    if($zeiten[0] <= $ablaufzeit) {
    $fp = fopen( "$daten", "r" );
    $contents = fread($fp, filesize($daten));
    fclose($fp);
    $line=quotemeta($line);
    $string2 = "";
    $replace = ereg_replace($line, $string2, $contents);
    $fh=fopen($daten, "w");
    @flock($fp,2);
    fputs($fh, $replace);
    @flock($fp,3);
    fclose($fh);
    }
    }
    $ippruefung = @file($daten);
    while (list ($line_num, $line) = @each ($ippruefung)) {
    $ips = explode("&&",$line);
    if($ips[1] == $ip) {
    $fp = fopen( "$daten", "r" );
    $contents = fread($fp, filesize($daten));
    fclose($fp);
    $line=quotemeta($line);
    $string2 = "";
    $replace = ereg_replace($line, $string2, $contents);
    $fh=fopen($daten, "w");
    @flock($fp,2);
    fputs($fh, $replace);
    @flock($fp,3);
    fclose($fh);
    }
    }
    ...




    LG
    Hilei

  • #2
    Hallo,

    selber habe ich noch kein altes PHP-Script umgeschrieben, aber hier mal ein Link dazu,siehe

    In PHP7 wurde die ereg-Befehle für z.B. das Suchen und Ersetzen mittels regulärer Ausdrücke entfernt. Stattdessen sollen die preg_*-Befehle in PHP7 genutzt werden.

    Der Unterschied zwischen den ereg-Befehlen und den preg-Befehlen liegt im Start und Endzeichen:

    PHP-Code:
    <?php
    ereg
    ('hello'$str);
    preg_match('/hello/'$str);

    Bei ereg konnte der reguläre Ausdruck unmittelbar geschrieben werden. Bei den preg-Befehlen muss ein spezielles Zeichen zu Beginn und Ende des regulären Ausdrucks stehen. Im obigen Beispiel muss der reguläre Ausdrück durch ein / zu Beginn und Ende ergänzt werden.

    Quelle: https://www.php-einfach.de/2019/02/m...eicht-gemacht/
    Oder einfach gesagt statt ereg_replace mit preg-replace versuchen, siehe

    https://www.php.net/manual/de/function.preg-replace.php

    daniel5959
    Zuletzt geändert von daniel5959; 27.01.2020, 18:34.
    FindeLinks.de - Kurzinfos mit Linkempfehlung
    Homepage-FAQs.de - bleibt als Archiv online

    Kommentar


    • #3
      Hallo Daniel,

      das hatte ich schon probiert. Funktioniert leider nicht nur den Befehl zu ersetzen oder alles mit einem Hochkomma zu versehen.

      Gibt es einen alternativen Befehl?

      LG Hilei

      Kommentar


      • #4
        Was steht denn in der Variable $line? Da drin ist ja der pattern. Der muss geändert bzw. angepasst werden

        Kommentar


        • #5
          Hallo Testie,

          das steht ja oben im Quelltext:

          $line=quotemeta($line);

          Deshalb weiß ich ja nicht weiter.

          Gruss Hilei
          Zuletzt geändert von hilei; 28.01.2020, 05:43.

          Kommentar


          • #6
            Hallo,

            wenn ich mich nicht irre, dann stammen die Inhalt von $line von hier

            PHP-Code:
            $daten "../anzeige.txt"

            Leider habe ich mich 2006 schon aus meiner kleinen PHP-Programmierung zurückgezogen. Evtl. im Script in den Zeilen die Variablen mit echo oder print_r ausgeben lassen, um zu sehen wie sie aussehen.

            daniel5959
            Zuletzt geändert von daniel5959; 28.01.2020, 06:04.
            FindeLinks.de - Kurzinfos mit Linkempfehlung
            Homepage-FAQs.de - bleibt als Archiv online

            Kommentar


            • #7
              Nachtrag

              Im Link >> https://www.php-einfach.de/2019/02/m...eicht-gemacht/

              gibt es auch diesen Hinweis

              Wer die ereg-Befehle nicht per Hand anpassen will, für den empfiehlt sich ebenfalls ein Wrapper: Wrapper for PHP ereg extension

              Zu Beginn eurer Scripte müsst ihr nur
              1 require_once('ereg-wrapper.php');

              einfügen und eure Anwendung kann weiterhin die veralteten ereg-Befehle nutzen.
              FindeLinks.de - Kurzinfos mit Linkempfehlung
              Homepage-FAQs.de - bleibt als Archiv online

              Kommentar


              • #8
                Hallo Daniel,

                wo kann ich die Datei 'ereg-wrapper.php' herunterladen?

                Habs gefunden !

                Ich teste es mal.

                Gruss Hilei
                Zuletzt geändert von hilei; 28.01.2020, 09:21.

                Kommentar


                • #9
                  Zitat von hilei Beitrag anzeigen
                  Hallo Testie,

                  das steht ja oben im Quelltext:

                  $line=quotemeta($line);

                  Deshalb weiß ich ja nicht weiter.

                  Gruss Hilei
                  Ahhhh, jetzt wo du es sagst. Stimmt ja... da oben stehts ja...

                  Null Erfahrung mit Programmierung und dann auch noch so frech. Bin raus.

                  Kommentar


                  • #10
                    Zitat von hilei Beitrag anzeigen
                    Habs gefunden !

                    Ich teste es mal.
                    Handelt es sich denn nur um einen Script?
                    https://arnego2.com <Webseiten, Umbau ab €80 und einiges mehr>

                    Kommentar

                    homepage-forum.de - Hilfe für Webmaster! Statistiken

                    Einklappen

                    Themen: 56.614   Beiträge: 428.153   Mitglieder: 28.214   Aktive Mitglieder: 47
                    Willkommen an unser neuestes Mitglied, berry25.

                    Online-Benutzer

                    Einklappen

                    343 Benutzer sind jetzt online. Registrierte Benutzer: 3, Gäste: 340.

                    Mit 3.502 Benutzern waren am 23.01.2020 um 17:20 die meisten Benutzer gleichzeitig online.

                    Die neuesten Themen

                    Einklappen

                    Die neuesten Beiträge

                    Einklappen

                    Lädt...
                    X