Ankündigung

Einklappen
Keine Ankündigung bisher.

Kann man folgenden Code verschnellern?

Einklappen

Neue Werbung 2019

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

  • Kann man folgenden Code verschnellern?

    Hallo Leute,

    tut mir Leid euch hiermit belästigen zu müssen, aber hab grad wohl n Blackout. Mir fällt keine Funktion ein, die folgendes schneller macht:


    PHP-Code:
    if(!empty($_SERVER["QUERY_STRING"])) { 
        
    $adv_addon "&".$_SERVER["QUERY_STRING"];
        
    $adv_addon str_replace("&action=activation"""$adv_addon);
        
    $adv_addon str_replace("&action=logout"""$adv_addon);
        
    $adv_addon str_replace("&adv_sent=login"""$adv_addon);
        
    $adv_addon str_replace("&adv_sent=registration"""$adv_addon);
        
    $adv_addon str_replace("&adv_sent=profil_edit"""$adv_addon);
        
    $adv_addon str_replace("&adv_sent=pass_forgotten"""$adv_addon);
        
    $adv_addon str_replace("&mfolder=inbox"""$adv_addon);
        
    $adv_addon str_replace("&mfolder=outbox"""$adv_addon);
        
    $adv_addon str_replace("&mfolder=draft"""$adv_addon);
        
    $adv_addon str_replace("&mfolder=trash"""$adv_addon);
        if(
    substr_count($adv_addon,"?")==AND substr_count($adv_addon,"&")>=1) {
            
    //erstes vorkommen von needle austauschen
        
    }


    Könnt ihr mir ein wenig helfen? Wäre super. Danke[/code]

  • #2
    Was hast du vor? Leg dir doch ne Kopie des $_GET Arrays an und entfernt aus ihm die nicht benötigten Elemente. Danach setzt du alles wieder mit http_build_query() zusammen.

    Abgesehen davon: str_replace() akzeptiert als 1. und/oder 2. Parameter Arrays.

    Kommentar


    • #3
      PHP-Code:
      $_SERVER["QUERY_STRING"] = "&action=activation&adv_sent=login&adv_sent=pass_forgotten&reset=1&nocheins=true&weiter=ja";

      $aUnset = array("action""adv_sent""mfolder");
      $aGet     = array();
      $umstaendlich true;


      if(
      $umstaendlich) {
          
      // Umständlicher Weg?
          
      parse_str($_SERVER["QUERY_STRING"], $aGet);
      } else {
          
      // Oder doch einfach
          
      $aGet $_GET;    
      }
      foreach(
      $aUnset as $unset_key)
          if(
      array_key_exists($unset_key$aGet))
              unset(
      $aGet[$unset_key]);

      $newquerystring "";
      foreach(
      $aGet as $key => $value) {
          
      $newquerystring.= ($newquerystring=="") ? "?" "&";
          
      $newquerystring.= $key."=".$value;
      }

      echo 
      $newquerystring
      edit: Die Frage ist, ob das wirklich schneller ist. Eigentlich kann mans nur schneller erweitern. Das hier funzt auch mit PHP4

      Kommentar


      • #4
        PHP-Code:
        <?php
        $aGET 
        $_GET;
        unset(@
        $aGET['action'], @$aGET['adv_sent'], @$aGET['mfolder']);
        echo 
        http_build_query($aGET);
        ?>
        Funktioniert nur PHP5.

        Kommentar


        • #5
          PHP-Code:
          <?php 
          if(!empty($_SERVER["QUERY_STRING"])) {
          $adv_addon "&".$_SERVER["QUERY_STRING"]; 

          $array = array("&action=activation" => """&action=logout" => """&adv_sent=login" => """&adv_sent=registration" => """&adv_sent=profil_edit" => """&adv_sent=pass_forgotten" => """&mfolder=inbox" => """&mfolder=outbox" => """&mfolder=draft" => """&mfolder=trash" => "");

          $adv_addon strtr($adv_addon$array);
          if(
          substr_count($adv_addon,"?")==AND substr_count($adv_addon,"&")>=1) {
                  
          //erstes vorkommen von needle austauschen
              
          }
          }
          Weiß nich ob das schneller is aber müsste auch funktionieren

          Kommentar

          Lädt...
          X