Code Beschleunigen??

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

  • #16
    mmh der hat den anhang nicht genommen
    hier noch mal
    Angehängte Dateien

    Kommentar


    • #17
      hi @Phoenix666
      ich habe gerade bemerkt, dass die links zu allen methoden, die :: oder -> haben nicht richtig verlinkt können, und auch auf function-index seite sind acuh keine links zu solchen funktionen vorhanden.

      man muss was einfallen lassen
      bis dahin, würde ich alle datensätze mit :: und -> einfach aus DB löschen.

      Bemerkung:
      1)locate(......)>0 ist ausreichend, also <> ist überflüssig.
      2)trimm bei dem datensatz ist nicht nötig.
      3)pregreplace ist bei dir leider nicht so gut geworden
      schau dir der Beispiel:
      PHP-Code:
      $start=microtime(true);
      mysql_connect("localhost","root","");
      mysql_select_db("test");
      $sql="select * from functions where locate(funk,'".mysql_real_escape_string($txt)."')>0";
      $hand=mysql_query($sql)or die(mysql_error());

      function 
      ersatz($erg){
        return 
      $erg[1]."<a href=\"http://de2.php.net/manual/de/function."
        
      .strtolower(str_replace("_","-",$erg[2])).".php\" target=\"_blank\">"
        
      .htmlentities($erg[2])."</a>".$erg[3];
      }

      while(
      $erg=mysql_fetch_row($hand)){ 
      $pattern = '/([\.\s,\(\+\-:\/\*\{\=])('.preg_quote($erg[0]).')(\s*\()/i';
      PHP-Code:
        $txt=preg_replace_callback($pattern"ersatz"$txt);
      }
      echo 
      $txt;
      echo 
      "<h1>".(microtime(true)-$start)." sec </h1>"
      Slava
      bituniverse.com

      Kommentar


      • #18
        hi

        hab mal ne frage was meinst du mit:

        ich habe gerade bemerkt, dass die links zu allen methoden, die :: oder -> haben nicht richtig verlinkt können, und auch auf function-index seite sind acuh keine links zu solchen funktionen vorhanden.

        man muss was einfallen lassen
        bis dahin, würde ich alle datensätze mit :: und -> einfach aus DB löschen.
        das verstehe ich nicht ganz!

        aber hab deinen lösungs vorschlag mal getestet is geringfügig schneller

        Kommentar


        • #19
          zur 1 (was ich meine)
          als ich alle functions mit preg_match_all aus der functions-index-seite
          http://de2.php.net/manual/de/index.functions.php
          rausgefiltert habe, waren dabei auch die functionsnamen ohne Verlinkung, und das waren am meistens die Funktionen die in Ihrem Namen "::"
          oder "->" haben.
          um aus einer functionsnamen ein link zu bilden, habe ich einfach "_" durch "-" ersetzt und ".php" angehängt.
          diese Model passt leider nicht um die functionen mit "::" und "->" anzuspechen.

          zur 2 (es ist schneller)
          vermutlich ist meine preg_match sogar langsamer als deiner, aber passt besser um die funktion richtig zu localisieren, man muss einfach mehr ausschau auf die zeichen die vor der function stehen und nach der function halten.
          ich habe noch vergessen, dass auch ein "?" vor der function vorkommen kann, deshalb ändere bitte pattern so
          $pattern = '/([\.\s,\(\+\-:\/\*\{\=\?])('.preg_quote($erg[0]).')(\s*\()/i';
          Slava
          bituniverse.com

          Kommentar


          • #20
            Original geschrieben von Slava
            ich habe noch vergessen, dass auch ein "?" vor der function vorkommen kann, deshalb ändere bitte pattern so
            $pattern = '/([\.\s,\(\+\-:\/\*\{\=\?])('.preg_quote($erg[0]).')(\s*\()/i'; [/B]
            du hast noch viel mehr vergessen.
            mir fällt da spontan modulo %, and &&, or || usw. ein.
            ich halte das doch für übertrieben - ein check auf "nicht alphanumerisch" am anfang, sollte genügen.

            Kommentar


            • #21
              Danke @ 3DMax
              du hast Recht es ist überflüssig.
              so:
              $pattern = '/(\W)('.preg_quote($erg[0]).')(\s*\()/i';
              muss es auch ausreichen
              Slava
              bituniverse.com

              Kommentar


              • #22
                ich möchte ja jetzt nicht nörgeln, aber das ende (\s*\() passt auch nicht so ganz

                z.b.: echo oder include, darauf könnten außer \s* folgen: ", ', $ und nicht zwingend (

                und preg_quote dürfte dafür überflüssig sein

                Kommentar


                • #23
                  Original geschrieben von 3DMax
                  ich möchte ja jetzt nicht nörgeln, aber das ende (\s*\() passt auch nicht so ganz

                  z.b.: echo oder include, darauf könnten außer \s* folgen: ", ', $ und nicht zwingend (

                  und preg_quote dürfte dafür überflüssig sein
                  warum nörgeln?
                  das ist doch eine richtige Bemerkung, mit der du dem Phoenix666 als auch den Anderen, die so was machen wollen hilfst
                  preg_qutes ist einfach eine Gewohnheit von mir, da viele Werte aus REQUEST kommen und ist in unserem Fall wirklich unnötig.
                  und mit ("|') hast du auch richtig Bemerkt.
                  wenn wir alles berücksichtigt haben, dann muss es etwa so aussehen:
                  $pattern = '/(\W)('.$erg[0].')(\s*[\(\"\\'])/i';

                  nörgeln ist erwünscht
                  Zuletzt geändert von Slava; 09.10.2006, 16:36.
                  Slava
                  bituniverse.com

                  Kommentar


                  • #24
                    hi
                    danke für eure antworten
                    werde die tage weiter ausprobieren und testen

                    sorry das ich jetzt erst zurück schreibe,
                    war ne zeitlang auf montage darum konnte ich nicht schreiben

                    Kommentar

                    Lädt...
                    X