Domain zerlegen

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

  • #16
    Hi Leute! Ich hab's geschafft! *lol*
    War wieder mal ne schwere Geburt; was!?

    Special THX gehen an TobiaZ und 3DMax, die mir die wichtigsten Tipps gegeben haben!
    Obligatorisch folgt die von mir verwedete Lösung:
    PHP-Code:

    $aktpage1 
    $_SERVER['REQUEST_URI']; // Aktuelle URL holen
    $aktpage2 trim($aktpage1"/nsox/August/");  // Trimmt den Pfad falls man sich in Subverzeichnissen bewegt...

    $swger str_replace("lang=eng""lang=de"$aktpage2); // Switch nach GER
    $sweng str_replace("lang=de""lang=eng"$aktpage2); // Switch nach ENG

    echo '<A HREF="'.$swger.'"><IMG SRC="pics/flag_de.gif" TITLE="Sprache wechseln -> DE!"></A>';
    echo 
    '<BR>';
    echo 
    '<A HREF="'.$sweng.'"><IMG SRC="pics/flag_eng.gif" TITLE="Switch language -> ENG!"></A>'
    Lg. aus Wien;

    Berny
    WHILE (!$asleep) { $sheep++; }

    Kommentar


    • #17
      Fein, dann mußt du von nun an aber aufpassen, dass du niemals URL-Parameter verwendest, die lang=de enthalten. Denn dein str_replace() würde auch slang=derbe zu slang=engrbe machen ... weil du die Begrenzer ?/& nicht beachtest.

      Kommentar


      • #18
        hmm...
        Das nächste Problem ist aufgetreten! Hoffentlich könnt ihr nochmal helfen!

        Eine URL:
        PHP-Code:
        index.php?lang=eng&section=4&sub=5&p=$FU&q=$BAR 
        Diese soll "verstümmelt" werden, so dass sie schließlich so aussieht:
        PHP-Code:
        index.php?lang=eng&section=4&sub=5&q=$BAR 
        Zu Bedenken sind folgende Probleme:

        Die Variablen vor und nach "p=$FU" ändern ihre Werte und somit auch die Länge der Zeichenkette!
        Die Variable "p=$FU" ist nicht immer gegeben und es kann vorkommen, dass andere Variablen folgen!

        Also ich hab schon ziehmlich viel rumprobiert von trimmen über replacen, etc. pp.
        WHILE (!$asleep) { $sheep++; }

        Kommentar


        • #19
          PHP-Code:
          preg_replace('/p=[^&]/','',$deinString); 
          Wenn der String unterschiedlich lang sein kann drängen sich RegExp förmlich auf. Der obige überschreibt alles von p= bis (aber nicht inkl) &.
          Denke das sollte das sein was du suchst

          Gruss

          tobi
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #20
            Original geschrieben von nichtsooft
            Also ich hab schon ziehmlich viel rumprobiert von trimmen über replacen, etc. pp.
            Ja, wer nicht in der Lage ist, sich passende Funktionen zu suchen, der muss halt öfter mal selber basteln ...


            parse_str(), unerwünschtes rauswerfen, ggf. http_build_query()
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #21
              Hier mal ein Ansatz zu ner Lösung mit php5 und http_build_query()


              PHP-Code:

              $get_data 
              $_GET;

              $get_data['lang'] = 'de';
              $opt_de http_build_query($get_data);

              $get_data['lang'] = 'en';
              $opt_en http_build_query($get_data);


              $link_de $_SERVER['PHP_SELF'].'?'.$opt_de;
              $link_en $_SERVER['PHP_SELF'].'?'.$opt_en

              falls nur PHP4 vorhanden ist, kann man sich http_build_query() auch leicht selbst schrauben: (zugegeben, eine einfach Variante)

              PHP-Code:
              if(!function_exists('http_build_query')){
                function 
              http_build_query($arr_get){
                  
              $arr_return = array();
                  foreach(
              $arr_get AS $get_key => $get_val){
                    
              $arr_return[] = $get_key.'='.urlencode($get_val);
                  }
                  return 
              implode("&"$arr_return);
                }


              EDIT:
              Wenn du jetzt noch Werte anhängen willst füg sie einfach $get_data hinzu
              Zuletzt geändert von prego; 12.09.2006, 15:31.

              Kommentar


              • #22
                @jahlives: Dein Vorschlag macht aus index.php?pop=x&p=x&... mal eben index.php?po&p=x&...., weil du den Begrenzer ?/& vor p= nicht beachtest.

                Kommentar

                Lädt...
                X