WinFuture-Forum.de: Verständnisproblem Mit Preg_match - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Verständnisproblem Mit Preg_match brauche Erklärung!!


#1 Mitglied ist offline   knogger 

  • Gruppe: aktive Mitglieder
  • Beiträge: 85
  • Beigetreten: 13. Mai 05
  • Reputation: 0

geschrieben 13. August 2005 - 15:58

hi,
kann mir freundlicherweise schritt für schritt folgendes erklären:

<?php
// den Hostnamen aus URL holen
preg_match("/^(http:\/\/)?([^\/]+)/i",
   "http://www.php.net/index.html", $treffer);
$host = $treffer[2];

// die letzten beiden Segmente aus Hostnamen holen
preg_match("/[^\.\/]+\.[^\.\/]+$/", $host, $treffer);
echo "Der Domänen-Name lautet: {$treffer[0]}\n";
?>


(also nur das innerhalb von preg_match)

PLEASE HELP!!!!

Dieser Beitrag wurde von knogger bearbeitet: 13. August 2005 - 15:59

0

Anzeige



#2 Mitglied ist offline   Floele 

  • Gruppe: aktive Mitglieder
  • Beiträge: 919
  • Beigetreten: 22. Juni 04
  • Reputation: 0

geschrieben 13. August 2005 - 17:58

Es gibt genug Tutorials für reguläre Audrücke, zum Beispiel so eins:
http://www.regenechs...regex_1_de.html
0

#3 Mitglied ist offline   knogger 

  • Gruppe: aktive Mitglieder
  • Beiträge: 85
  • Beigetreten: 13. Mai 05
  • Reputation: 0

geschrieben 13. August 2005 - 18:30

hmm... hab gegoogelt... keins gefunden!

danke!! vielen dank!!!!
0

#4 Mitglied ist offline   Floele 

  • Gruppe: aktive Mitglieder
  • Beiträge: 919
  • Beigetreten: 22. Juni 04
  • Reputation: 0

geschrieben 13. August 2005 - 19:27

Zitat (knogger: 13.08.2005, 19:30)

hmm... hab gegoogelt... keins gefunden!


Wonach hast du denn gesucht? :)
0

#5 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.686
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 14. August 2005 - 00:06

Zitat (knogger: 13.08.2005, 16:58)

preg_match("/^(http:\/\/)?([^\/]+)/i", "http://www.php.net/index.html", $treffer);
$host = $treffer[2];

// die letzten beiden Segmente aus Hostnamen holen
preg_match("/[^\.\/]+\.[^\.\/]+$/", $host, $treffer);
echo "Der Domänen-Name lautet: {$treffer[0]}\n";
?>[/code]

(also nur das innerhalb von preg_match)

PLEASE HELP!!!!
<{POST_SNAPBACK}>


janz einfach...hast glück, dass ich ein wenig zeit habe (ansonsten, s. Floele)
1. http://de2.php.net/m....preg-match.php
2. Erklärung zu den Regex:
^(http:\/\/)?
string soll mit http:// anfangen. Ist aber optional, muss nicht unbedingt vorkommen (das sagt das Fragezeichen aus)
([^\/]+)/i

Die eckigen Klammern, stehen für die Auswahl. Das heißt, was man aus dem String haben möchte.
Jeder Buchstabe außer Slash (muss mindestens einmal vorkommen, sagt das Plus aus). /i am Ende bedeutet, dass Groß-Kleinschreibung egal ist.
Somit erhält man den Hostnamen, in dem Fall www.php.net

Als nächstes will man aus dem Hostnamen nur das php.net haben.
Man muss quasi das www. rausschmeißen.
[^\.\/]+\.[^\.\/]+$

Jeder beliebige Buchstabe außer einem Punkt und Slash (muss mindestens einmal vorkommen) bis zu einem Punkt (somit php.)
Als nächstes das gleiche. ABER...am Ende sieht man noch ein $ das fast untergeht. Das steht für das Zeilenende. Man will also das Zeilenende.
Würde man das weglassen, wäre die Ausgabe www.php.

Ich hoffe, ich habe es einigermaßen gut erklärt (ist nicht einfach an einem Sonntagmorgen. Man war halt etwas länger weg und...naja lassen wir das :))
0

#6 Mitglied ist offline   knogger 

  • Gruppe: aktive Mitglieder
  • Beiträge: 85
  • Beigetreten: 13. Mai 05
  • Reputation: 0

geschrieben 14. August 2005 - 13:17

thanx!!! <_<
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0