Teiele im String ersetzen

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

  • #16
    Bei sowas auf die Performance achten? Also bitte ... ;-)
    Bei sowas die drei Zeichen kürzere Version bevorzugen? Also bitte :-P

    Kommentar


    • #17
      Öhm ... diesbezüglich wollte ich nur sagen, dass ich meine Version auch noch abspecken könnte ... den Variablenname auf 1 Zeichen reduzieren = spart 4 Zeichen! Bin ich dann wieder im Rennen ???!

      Gruß php_fussel

      Kommentar


      • #18
        Original geschrieben von PHP-Desaster
        Bei sowas die drei Zeichen kürzere Version bevorzugen? Also bitte :-P
        Da geht's um Übersichtlichkeit. Ich brauche nicht 4 Zeichen, sondern 1 Variable weniger ... ;-)

        Performance ist etwas sehr überbewertet für die meisten Anwendungsbeispiele von PHP. Wenn Geschwindigkeit vor Übersichtlichkeit und Wiederverwertbarkeit gehen würde, müsste man ja OOP in die Tonne werfen.

        Bei gewöhnlichen Websites lässt sich durch Optimierung am Frontend (!) vermutlich viel mehr Performance rauskitzeln.
        Mein PHP Blog

        Kommentar


        • #19
          Original geschrieben von php_fussel
          1 Zeichen reduzieren = spart 4 Zeichen!
          Vielleicht auf der HDD auf dem WebServer, aber bei der Ausführung wird das (könnte ich wette), wegoptimiert. Ich glaub aber hier wird gerade etwas enorm vom Thema abgewichen.
          Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

          Kommentar


          • #20
            Mensch Leute, ich will doch nur etwas 'Schbass' haben ... immer diese knochentrockenen Coder! Aber auf jeden Fall bin ich stets für Verbesserungen dankbar, bitte lasst das nicht aufhören!

            @ModestLife: Das mit dem '-1' (also den String von hinten anzählen), ist in der Funktionsdefinition klar dokumentiert ... da hast Du etwas weitergelesen ... meinen Glückwunsch zum (vorerst) 1. Platz! Aber vielleicht findet ja der eine oder andere eine noch kürzere Lösung ... !
            "Ist der Wert negativ, gibt er die Zeichenzahl an, um die ab Ende von string rückwärts gezählt wird".

            Gruß php_fussel

            Kommentar


            • #21
              PHP-Code:
              echo str_pad($var[0], strlen($var) - 1'*').substr($var, -1); 
              Juhu, ich habe den Kürzesten

              Kommentar


              • #22


                Juhu, ich habe den Kürzesten
                ... geil, das man sowas auch mit Freude sagen kann ... ich bepiss´ mich gerade vor Lachen ...


                Gruß php_fussel

                Kommentar


                • #23
                  Original geschrieben von phpguru42
                  PHP-Code:
                  echo str_pad($var[0], strlen($var) - 1'*').substr($var, -1); 
                  Juhu, ich habe den Kürzesten
                  Meiner ist kürzer:
                  PHP-Code:
                  echo preg_replace('/(?<=.).(?=.)/s''*'$var); 
                  ... und laaaangsamer, siehe:

                  Code:
                  // $var mit 100 Zeichen/Bytes:
                  $var = str_repeat("testtesttesttesttest", 5);
                  --
                  performed 1000 runs == 10 loops * 100 runs_per_loop
                  1 run      runs/s       (1000 runs)
                  --
                  0.174 ms   5758/s (all: 173.669 ms) -- fw:
                                                     preg_replace('/(?<!\A).(?!\z)/s', '*', $var);
                  0.179 ms   5585/s (all: 179.031 ms) -- fw:
                                                       preg_replace('/(?<=.).(?=.)/s', '*', $var);
                  0.003 ms 330026/s   (all: 3.030 ms) -- fw:
                                                        $x = str_repeat('*', $len = strlen($var));
                                                         $x[0] = $var[0]; $x[--$len] = $var[$len];
                  0.007 ms 148371/s   (all: 6.740 ms) -- phpguru42:
                                         str_pad($var[0], strlen($var) - 1, '*').substr($var, -1);
                  0.003 ms 304774/s   (all: 3.281 ms) -- ModestLife:
                                   substr_replace($var, str_repeat('*', strlen($var) - 2), 1, -1);
                  0.003 ms 306937/s   (all: 3.258 ms) -- php_fussel:
                                  substr_replace($var,str_repeat("*",$erg=strlen($var)-2),1,$erg);
                  0.010 ms 103734/s   (all: 9.640 ms) -- wahsaga:
                                    $var[0].str_repeat('*', strlen($var)-2).$var[strlen($var)-1];
                  --
                  --
                  Original geschrieben von RamonaS
                  Wie macht man sowas um zu sehen welche funktion schneller als die andere läuft?

                  Ich denke mal das wird wohl per schleife gemacht, aber um da gescheite ergebnisse zu erhalten muß man diesen durchgang 100. oder 1000. Male ausführen?
                  Ja.

                  Gibts so ein fertiges script wo man seine 2 konkurenten einfügt und dann läßt sich testen welche schneller ist?
                  Sicher gibt es das.
                  Man kann sich sowas aber per microtime() ganz prima selber basteln.
                  Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

                  Kommentar


                  • #24
                    Original geschrieben von fireweasel
                    Meiner ist kürzer:
                    PHP-Code:
                    echo preg_replace('/(?<=.).(?=.)/s''*'$var); 
                    Wusste ich es doch, dass es mit preg_replace kürzer geht. Habe soetwas wie alle Zeichen außer Anfang und Ende gesucht.
                    Stehen diese Ausdrücke dafür?
                    (?<=.)
                    (?=.)

                    Kommentar


                    • #25
                      Aha, endlich mal Fakten auf´n Tisch! Da liege ich ja in Bezug auf die Performance an vorderster Front! Und mir wird hier in einem anderen Thread sinnloses Posten vorgeworfen, tse!

                      Das preg_replace (mit dem ich mal ausgiebig gearbeitet habe), hatte ich gestern bei einer erneuten (kürzeren) Lösungssuche auch schon im Visier ... kam dann aber auch nicht drauf! Gut!!

                      Gruß php_fussel

                      Kommentar


                      • #26
                        Original geschrieben von phpguru42
                        Wusste ich es doch, dass es mit preg_replace kürzer geht.
                        Ja gehen tuts, aber nur sehr langsam (siehe Geschwindigkeitsvergleich). Wahrscheinlich liegts daran, dass für jedes Zeichen immer das davorliegende und das darauffolgende Zeichen extra geprüft wird. Ich hätte das gerne schneller.

                        Habe soetwas wie alle Zeichen außer Anfang und Ende gesucht.
                        Ja, das war der:
                        Code:
                        echo preg_replace('/(?<!\A).(?!\z)/s', '*', $var);
                        Ein beliebiges Zeichen, das aber nicht am Anfang und auch nicht am Ende des Strings steht.

                        Stehen diese Ausdrücke dafür?
                        (?<=.)
                        (?=.) [/B]
                        Nein, die stehen für "ein beliebiges Zeichen davor" und "ein beliebiges Zeichen danach".
                        Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

                        Kommentar

                        Lädt...
                        X