string vorne auslesen, hinten anhängen
Hallo,
ich hab sehr wenig Ahnung von php. Gesucht hab ich auch, aber nichts gefunden was helfen könnte. Ich habe auch schon experimentiert, aber mit arrays hab ich das nicht hin bekommen. Möglicherweise kann ich auch einen einfachen Befehl verwenden? Das soll passieren: $domain == "hans.dampf.einedomain.de" Ich möchte alles VOR ".einedomain.de" kopieren und hinten Zufügen in der Form hans.dampf.einedomain.de/hans.dampf/ In GFA-Basic könnte ich es :-) Danke Frank Hoffentlich kann jemand helfen. |
AW: string vorne auslesen, hinten anhängen
hmm da würde mir ein weg einfallen,
PHP-Code:
andere wege nutzen aber so sähe für mich ein einfacher code aus. (ungetestet keine garantie xD) Hoffe ich konnte dir helfen MFG R4Zz0R |
AW: string vorne auslesen, hinten anhängen
Ich gehe doch einmal davon aus, daß hans.dampf.meinedomain.de nur ein Beispiel ist und somit die 10 Zeichen nicht immer gesetzt sind.
Mit explode() kommst du deinem Ziel eigentlich schon recht nahe, wenn du dir sicher sein kannst, daß es sich um eine Domain handelt. PHP-Code:
|
AW: string vorne auslesen, hinten anhängen
Grundsätzlich wirst du vermutlich auch noch parse_url verwenden oder zumindest in Erwägung ziehen müssen.
parse_url |
AW: string vorne auslesen, hinten anhängen
mixed parse_url ( string $url [, int $component = -1 ] )
Diese Funktion parst einen URL und gibt ein assoziatives Array zurück, das die im URL vorhandenen Komponenten enthält. Diese Funktion ist nicht dazu gedacht, einen gegebenen URL zu validieren, sondern es gliedert einen URL in die unten aufgeführten Bestandteile. Unvollständige URLs werden als Parameter akzeptiert, parse_url() versucht, sie bestmöglich zu analysieren. -> OK. Alternativ kann er auch so arbeiten. xD gerade als mir (selbe idee wie bei dir urvater) die idee mit explode zu arbeiten kam, stand schon alles da xD @urvater Noch ne andere frage zu parse_url Die funktion gibt ja ein array zurück mit den inhalten: Array ( [scheme] => http [host] => hostname [user] => benutzername [pass] => passwort [path] => /pfad [query] => argument=wert [fragment] => textanker ) Der url : PHP-Code:
wird diese eigentlich auch mitgegeben ?^ oder liegt es wenn die # mit übergeben wird an der php.ini ?^^ Habe mal aus juks ein wenig gebastelt nur will die blöde # nicht aus dem übergebenen $test rausgehen. MFG R4Zz0R |
AW: string vorne auslesen, hinten anhängen
Verstehe irgend wie nicht dein Problem mit dem Textanker. Die # gibt ja nur den html Textanker an. Willst du ihn nicht haben musst du ihn aus dem Array entfernen.
Ansonsten findest du seinen Wert ja in [fragment]. Somit ist die # nach parse_url nicht mehr selbst im Array. Die angegebene Domain im Test bleibt davon unberührt. In Fall des Treaderstellers wird ja nur [host] genutzt bzw. soll verwendet werden. Den Rest aus dem Array würde er ggf. beim Zusammensetzen wieder benötigt. |
AW: string vorne auslesen, hinten anhängen
uuupppsss...
jup. jetzt hab ichs auch kapiert... xD Thx für die schnelle antwort @urvater MFG R4Zz0R |
AW: string vorne auslesen, hinten anhängen
Zitat:
Erst mal Danke auch für die anderen schnellen Hilfen. Ich werde nun einige Zeit benötigen, das zu testen. Da ich aber sehe, dass allgemein das Thema interessiert, möchte ich mal mein Projekt etwas besser beschreiben. Ich möchte beliebige Subdomains annehmen und weiterleiten können. hans.dampf.einedomain.de gerd.ist.ein.depp.und.schlaeft.nur.einedomain.de Schon deshalb entfällt array würde ich sagen, oder? Genau genommen ist es mir egal, was für eine Subdomain verwendet wird. Ist die zu routen, dann landet die im passenden Verzeichnis mit einer index.html - wenn nicht wird die Domain "einedomain.de" aufgerufen. mein Nameserver kann * Subdomains, mein Server *einedomain.de Ich möchte kurz in Basic erklären, wo es drauf ankommt. Das wird jeder schnell begreifen können. doman$="hans.dampf.einedomain.de" da = instr(domain$,".einedomain.de") Punkt vor einedomain beachten. if da enddomain$ = domain$+ "/" + mid$(domain$,1,da-1) (erste stelle bis gefunden minus Punkt) endif Alles zusammengesetzt ist dann das was ich will. Nun müsste meine derzeitige Domainweiche so umgebaut werden, dass die ermittelten Daten hier eingefügt und verwendet werden. <?php $domain = $_SERVER['SERVER_NAME']; if($domain=="einedomain.de" or $domain=="www.einedomain.de") { header('Location: http://einedomain.de'); } if($domain=="hans.dampf.einedomain.de") oder eine andere { header('Location: http://hans.damp.einedomain.de/hand.dampf/'); je nach zusammenbau } ?> Wenn für die ermittelte Subdomain kein Verzeichnis besteht, gibt es ja automatisch ein Error 404. Also kein Problem oder ich leite dann um. Komplette Subdomanweiche für tausende Subdomains, wenn die zugehörigen Ordner vorhanden sind. Ich finde die Idee gut und zudem entsteht wenig Serverbelastung. So, ich werde nun auch mal experimentieren. Sollte jemand so etwas fertig haben, wäre für mich heute schon Weihnachten :-)) Ach ja, sollte auch unter PHP4.3 laufen. Gruß Frank |
AW: string vorne auslesen, hinten anhängen
Hm...
Zitat:
Du willst schlieslich "tausende" subs weiterleiten, und jede sub einzeln als solchen code PHP-Code:
MFG R4Zz0R |
AW: string vorne auslesen, hinten anhängen
@R4Zz0R
Ich hab mich sicher unverständlich ausgedrückt. $domain = $_SERVER['SERVER_NAME']; if(IN der $domain enthalten ==".einedomain.de") { - den String Domain teilen vor .einedomain.de - alles vor .einedomain ist das Verzeichnis wo es hin soll - und alles zusammenbauen und nachstehend einfügen. header('Location: "http://" + $domain' + "/" + "alles vor .einedomain als Ordner"); } Ergebnis: http://hans.dampf.einedomain.de/hans.dampf/ Du siehst, ich brauche nur diesen einen Aufruf und eine Datenbank ist nicht nötig. Ich will nicht prüfen, ob es die Subdomain gibt, ich führe diese lediglich aus und verzweige zum zusammengebauten Ort. Ist der Ort zu erreichen, dann prima. Wenn nicht Error 404 und fertig. Und meine Arbeit ist nur, die Ordner anzulegen. Frank |
Alle Zeitangaben in WEZ +2. Es ist jetzt 19:40:56 Uhr. |
Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.