Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

dynamischer link mit verzeichniswechsel





Frage

servus miteinander, hab da ein kleines problem. habe eine homepage als deutsche und englische version. in dem deutschen verzeichnis gibt es dass unterverzeichnis "eng" für die englische version. alle dateien haben die gleiche bezeichnung also wenn kontakt.php auf deutsch ist dann hat "eng/kontakt.php" den gleichen dateinamen. ich hätte gerne nun, dass man von jeder seite aus vom deutschen ins englische switchen kann. dabei soll aber genau die seite auf englisch übersetzt werden, auf der man sich gerade im deutschen befindet. alles seiten im ordner "eng" sind natürlich schon übersetzt. ich bin der meinung, dass es hierfür eine bestimmte funktion gibt. also der link ins deutsche oder ins englisch sollte demnach dynamisch sein, kann ich dass mit der funktion: [code] <?php chdir(); ?> [/code] würde mich über antwort freuen. fritz

Antwort 1 von semi

Hast Du den Apache-Server?

Antwort 2 von fritz2000

Sagen wir es mal so, es läuft auf einem apache server, ich kann die php.ini aber nicht ändern

Antwort 3 von semi

Ohne an die httpd.conf ranzukommen dürfte es schwierig sein.
Mach' mal eine Versuch.

1) Lade die folgenden Seiten auf den Server

.htaccess

DirectoryIndex index.php.var
Options MultiViews

index.php.var

URI: index.php.de
Content-language: de
Content-type: text/html

URI: index.php.en
Content-language: en
Content-type: text/html

index.php.de

<?
echo "Hallo<br>";
?>
<a href="seite2.php">Seite 2</a>

index.php.en

<?
echo "Hello<br>";
?>
<a href="seite2.php">Page 2</a>

seite2.php.var

URI: seite2.php.de
Content-language: de
Content-type: text/html

URI: seite2.php.en
Content-language: en
Content-type: text/html

seite2.php.de

<?
echo "Dies ist ein Test<br>";
?>
<a href="index.php">Index</a>

seite2.php.en

<?
echo "Just a test<br>";
?>
<a href="index.php">Index</a>

Wenn der Server es zulässt, dann sollte, je nach Browsereinstellung, die korrekte Sprache verwendet werden.
Auf die gleiche Art kannst Du auch andere Seiten hinzufügen. Siehe auch Apache-Manual.

Gruß,
Michael

Antwort 4 von semi

Ohh..?! Ich sehe gerade, dass ich auf dem falschen Dampfer bin.
Das, was Du haben möchtest, kannst Du mit einem einfachen Link auf die englischen Seiten machen.
Klartext: In jeder Seite ein Link auf die entsprechende übersetzte Seite. Alle Links innerhalb einer Seite immer relativ zum aktuellen Verzeichnis.

Antwort 5 von fritz2000

hi semi,

problem ist, dass der link im header sein soll, und der header bei jeder seite included wird. deswegen soll er ja dynamisch sein - es sollte folgendes geshehen wenn man auf der seite ist

/hauptverzeichnis/kontakt.php


dann soll folgendes verlinkt sein

deutsch: /hauptverzeihnis/kontakt.php
englisch /hauptverzeichnis/eng/kontakt.php

und das zu jeder seite dynamisch - hoffe, es ist verständlich geschribeen

gruß fritz2000

Antwort 6 von Nessus

Hi,

dann zerlege die URL mit der Funktion parse_url und prüfe ab wo Du dich befindest. Dannach alles in ein If-Konstrukt gelegt, das wars.

Weiteres: http://de2.php.net/manual/de/function.parse-url.php

HTH
Nessus

Antwort 7 von semi

...noch zur Ergänzung.
Wenn Du Dich in z.B. /hauptverzeichnis/eng/kontakt.php befindest und auf einen Link klickst, dann bleibst Du im Verzeichnis eng, wenn alle Pfadangaben relativ sind.
z.B.
<a href="./index.php">Index</a>

innerhalb von

/hauptverzeichnis/eng/kontakt.php

resultiert in

/hauptverzeichnis/eng/index.php

Gruß,
Michael

Antwort 8 von fritz2000

hi nessus,

deine idee funktioniert leider nicht - habs versucht aber das einzigste was ausgegeben wird ist "Array".

gruß fritz 2000

Antwort 9 von Nessus

Hi,

Sie funktioniert, warum sollte sie nicht....
Du versuchst das Array falsch anzusprechen.
Poste mal dein Code.

Nessus

Antwort 10 von fritz2000

hi nessus,

hier ist mein code:


<?php 
$parse = parse_url($PHP_SELF);
echo $parse;
?>