• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Aktuelle Datei rausfinden

  • Ersteller Ersteller DerMitSkill
  • Erstellt am Erstellt am
Status
Für weitere Antworten geschlossen.
D

DerMitSkill

Guest
Hallo,
man kann ja mit

PHP:
<?php echo($_SERVER['PHP_SELF']); ?>
die aktuelle Datei rausfinden. Auf der Startseite würde da z.B. index.php rauskommen.

Wenn man aber nun die Datei mittels mod_rewrite umschreibt, z.B. in startseite.html, kommt bei dem obigen Befehl allerdings immernoch index.php raus. Wie kann ich es nun machen das dort startseite.html ausgegeben wird, also immer die aktuelle Datei, auch wenn sie per mod_rewrite umgeschrieben wurde?
 
Das gibt mir den ganzen Pfad zurück und den Namen der Datei die included wird, aber nicht die Datei die im Browser aufgerufen ist.
 
Das gibt mir den ganzen Pfad zurück und den Namen der Datei die included wird, aber nicht die Datei die im Browser aufgerufen ist.

schau dir mal die $_SERVER und die $_ENV variabeln an.
normalerweise würde ich jedoch davon abraten, schaut nach nem design problem deiner Anwendung aus.

http://de.wikipedia.org/wiki/Bootstrapping_(Programmierung)

Der wiki beitrag ist sehr abstrakt, evtl. solltest du mal nach beispielen suchen wo dieses verfahren anhand von php eingesetzt wird.

code is poetry :roll:
 
Wie kann ich das /de/ abschneiden?

Bei
PHP:
$_SERVER['REQUEST_URI']
kommt zum Beispiel
Code:
/de/benutzer/pascal/
raus.

Genau da soll dann /en/ abgeschnitten werden, so dass ich nur doch benutzer/pascal/ hab... wie geht das? Aber so das ich es nicht für jede Sprache machen muss, sondern z.B. immer der erste Teil abgeschnitten wird... ihr wisst wie ichs meine ;)
 
Ich habs mal versucht, aber es geht nicht...

PHP:
<?php echo(preg_replace("/(\w{2})/","",$_SERVER['REQUEST_URI'])); ?>
gibt
Code:
///startseite/
aus, statt dem von mir gewünschtem
Code:
/startseite/
Wieso? Was ist falsch? :(
 
Zuletzt bearbeitet von einem Moderator:
Wenn es immer die drei Zeichen sind, warum dann nicht substr()? Evtl. solltest du überlegen die einzelnen Sprachversionen über de.domain.com/en.domain.com verfügbar zu machen.
 
Du kannst folgendes auslesen:
Code:
$_SERVER['HTTP_HOST']
Bei domain.com leitest du nach Browser-Sprache entsprechend um.
 
Okay. Gecheckt. Und wie kriege ich die Browsersprache raus? Die entsprechende Variable enthält ja nicht nur de oder en, sondern vieeel mehr... :(
 
PHP:
function getUserLang () {
    if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
        $http_lang = explode(',', str_replace('_', '-', strtolower($_SERVER['HT
TP_ACCEPT_LANGUAGE'])));
        $pref_lang = FALSE;
        $pref_lang_weight = 0;
        foreach ($http_lang as $lang) {
            if (preg_match('/(.+);q=0\.(\d)/', $lang, $result)) {
                if ($result[2] > $pref_lang_weight) {
                    $pref_lang_weight = $result[2];
                    $pref_lang = $result[1];
                }
            } else {
                $pref_lang_weight = 10;
                $pref_lang = $lang;
                break;
            }
	}
	return $pref_lang;
    } else return FALSE;
}
 
Könntest Du mir das ganze auch erklären? Weil wenn ich was einbaue würde ich gerne wissen wie es funktioniert und was es da tut. Sonst lern ich es ja nicht ;)
 
Mh danke, ich werd das mir selber nachher nochmal auseinander nehmen das ich es verstehe.

Beim Mozilla Firefox 3 ist $_SERVER['HTTP_ACCEPT_LANGUAGE'] z.B.
Code:
de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Nach Deinem Code kommt folgendes raus:
Code:
de-de
Das -de ist aber noch zu viel, weil ich brauch immer nur de oder en, zwischen de-ch, de-at, de-li usw. wird nicht unterschieden.

Wie kann ich das auch noch abschnippeln?

Nachtrag:
Einige Browser haben keine q=-Werte... was passiert dann? IE7 und Safari senden nur de, Chrome sendet de-DE,de,en-US,en
 
Zuletzt bearbeitet von einem Moderator:
Status
Für weitere Antworten geschlossen.

Neueste Beiträge

Zurück
Oben