Antworten auf deine Fragen:
Neues Thema erstellen

PHP Frage: Wie kann man einen ganz bestimmten Teil in einer URL auslesen

M

mungo

Guest

Hallo Zusammen,

ich versuche gerade einen ganz bestimmten Teil in einer URL inkl. der Slashes (/de/) auszulesen und komme da einfach nicht weiter ...

Es handelt sich um eine Mehrsprachige Seite bei der ich die Content-Seiten der jeweiligen Sprache in einem eindeutigen Verzeichniss angelegt habe:
Die Verzeichnisse heißen:
"de" und "en"

Die Url ist folgendermaßen aufgebaut:
www.domainname.de/de/deutscher-inhalt.php
www.domainname.de/en/englischer-inhalt.php


Und so sieht mein Code bisher aus:

<?
$menu1 = 1;
if( preg_match("/en/i",$_SERVER['REQUEST_URI']) )
{
?>
<ul>

<li><a href="http://domainname.de/en/imprint.php">Imprint</a></li>
<li><a href="http:/domainname.de/en/development.php">Development</a></li>
</ul>

<?
$menu1 = 0;
}
if( $menu1 == 1)
{
?>
<ul>
<li><a href="http://domainname.de/de/impressum.php">Impressum</a></li>
<li><a href="http://domainname.de/de/entwicklung.php">Entwicklung</a></li>
</ul>
<?
}
?>

Da wie Ihr seht die Contentseitenbezeichnung ebenfalls "de" bei Development und "en" bei Entwicklung beinhalten. funktioniert das bei diesen Seiten nicht.

Ich bekomme es nicht hin, dass die Slashes mit ausgelesen werden, was denk ich die Lösung wäre, oder liege ich da falsch?

BITTE BITTE helft mir, ich bin echt am verzweifeln :'(

Folgende schreibweise habe ich auch schon versucht

if( preg_match("\/en\/i",$_SERVER['REQUEST_URI']) )


Leider muss ich zugeben, dass ich nicht wirklich fitt in php bin ... :uhm:

Vieln Dank im Voraus
 

Dagobert68

Nicht mehr ganz neu hier

AW: PHP Frage: Wie kann man einen ganz bestimmten Teil in einer URL auslesen

Moin Mungo,

du brauchst normalerweise am Anfang und am Ende je einen Schrägstrich / als Delimiter. Dann hast du aber noch je einen weiteren Schrägstrich vorne und hinten, der zu deiner gewünschten Zeichenkette (/de/ oder /en/) gehört. Den Schrägstrich musst du mit einem Backslash \ escapen, damit er nicht mit dem Delimiter verwechselt wird.

In deiner zweiten Variante fängst du mit dem Backslash an. Da fehlt also auf jeden Fall schon mal der Schrägstrich als Delimiter.

Schau mal hier, da findest du auch viele Beispiele:
http://de1.php.net/preg_match

Hoffe, ich konnte dich auf den richtigen Weg bringen :)

Grüßli,
Dagobert
 
M

Magrema

Guest

AW: PHP Frage: Wie kann man einen ganz bestimmten Teil in einer URL auslesen

Hi,

Du könntest auch die "explode" Methode nutzen und einfach den String von domainname.de/ wegschneiden und dann einfach das selbe nochmal und vor dem / wegschneiden dann sollte das gewünschte übrigbleiben.

Grüße

Bernd
 
M

mungo

Guest

AW: PHP Frage: Wie kann man einen ganz bestimmten Teil in einer URL auslesen

:) Vielen Dank für die schnellen Antworten :)

ich werde erstmal den Vorschlägen von euch nachgehen ...
 

afr0kalypse

Allwissendes Karmameerschweinchen!

AW: PHP Frage: Wie kann man einen ganz bestimmten Teil in einer URL auslesen

schade, dass hier nur über die php funktion geschrieben wird.
generell behandelst du solche aufgaben mit regulären ausdrücken (regex).
 
M

Micky261

Guest

AW: PHP Frage: Wie kann man einen ganz bestimmten Teil in einer URL auslesen

Warum würdest du das über RegEx machen? Darüber prüft man eigentlich Nutzereingaben auf bestimmte Dinge oder bestimmte Formate. Zumindest nutz ich das so.
 
AW: PHP Frage: Wie kann man einen ganz bestimmten Teil in einer URL auslesen

schade, dass hier nur über die php funktion geschrieben wird.
generell behandelst du solche aufgaben mit regulären ausdrücken (regex).

Ähem?

Ich habe zwar von PHP nicht die leiseste Ahnung, aber eines ist doch offensichtlich:
preg_match abeitet mit regulären Ausdrücken. Oder was ist das: preg_match("/en/i",$_SERVER['REQUEST_URI']) denn sonst?

@mungo, die PHP-Funktion scheint (im Gegensatz zu Javascript-Regex oder InDesign-Grep) verschiedene Delimiter zuzulassen. Vielleicht versuchst du "`/en/`"
 

m_c

Nicht mehr ganz neu hier

AW: PHP Frage: Wie kann man einen ganz bestimmten Teil in einer URL auslesen

Man nutzt für Stringüberprüfungen kein Regex!

Um mal die Anmerkungen zu zitieren:
Tipp Verwenden Sie nicht preg_match(), wenn Sie nur überprüfen wollen, ob eine Zeichenkette in einer anderen Zeichenkette enthalten ist. Verwenden Sie dafür stattdessen die Funktionen strpos() oder strstr(), die das schneller erledigen.
 
AW: PHP Frage: Wie kann man einen ganz bestimmten Teil in einer URL auslesen

@m_c,
natürlich nutzt man für Stringüberprüfungen auch Regex oder Grep. Nämlich genau dann, wenn weder die Position, noch die zu überprüfende Zeichenfolge, noch deren genaue Länge bzw. Zeichenanzahl bekannt ist.

Allerdings hast du recht. Das ist in diesem Beispiel nicht der Fall.

Und wie ich oben schon schrub: ich habe keinerlei Kenntnisse in PHP, daher bin ich auch mit der Syntax nicht wirklich vertraut.

Um den TO aber trotzdem bei seinem Problemchen zu helfen, werfe ich ihm nicht nur einfach einen Link vor oder ein: „Nein so macht man es nicht!“

@mungo,
ich habe zwar keine Lust, mich extra zur Problemlösung in die PHP-Syntax einzuarbeiten. Aber vielleicht ist es hilfreich für dich, wenn du siehst, wie man eine Pfadangabe (in einem Adobe-Programm per Javascript) auf das Vorhandensein einer zu suchenden Zeichenkette prüfen könnte. Wahrscheinlich kannst du das dann selbst mit den entsprechenden PHP-Funktionen (die höchstwahrscheinlich schon in diesem Thread verlinkt sind) nachbauen.

Variante eins (Immer der gleiche Domainname == gleiche Position des Suchstrings):
Code:
// kein PHP, nur JS
var url = "http://domainname.de/de/entwicklung.php";
alert("substr: "+url.substr (21,2))
url = "http://domainname.de/en/development.php";
alert("substr: "+url.substr (21,2))
Variante zwei (verschiedene Domainnamen):
Code:
// kein PHP, nur JS
var url = "http://ersterdomainname.de/de/entwicklung.php";
weiche (url);
url = "http://zweiterdomainname.de/en/development.php";
weiche (url);

function weiche () {
    url_check = url.split("/")
    alert("url.split: "+url_check[3])
    return;
    }
@mungo,
vielleicht meldest du dich ja noch einmal.
;)
 
Zuletzt bearbeitet:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.633
Beiträge
1.538.446
Mitglieder
67.555
Neuestes Mitglied
scheflo
Oben