Seite 1 von 1

URL extrahieren

Verfasst: 27.10.2006 10:43
von schmidii
Morgen zusammen,

ich nutze folgendes Script um mir den Pfad der aktuell geladenen URL im Browser auszulesen:

Code: Alles auswählen

$path = $_SERVER['REDIRECT_URL'];



$array = parse_url($path);
echo $array[path];

Ich bekomme dann was in dieser Art ausgegeben:
angebot/verzeichnis/produkt.html



Jetzt möchte ich das script dahingehend erweitern das ich nur den Dateinamen (also produkt) ausgegeben bekomme. Hintergrund: Ich möchte nach diesem Wort einen Text/eine Datenbank durchsuchen.


vielen Dank schonmal für die Antworten

Verfasst: 27.10.2006 10:54
von larsneo

Verfasst: 27.10.2006 11:24
von schmidii
Vielen Dank für die schnelle Antwort,

das funktioniert wunderbar.

Allerdings habe ich ein neues Problem.

Manche Dateinamen werden mit Unterstrich ausgegeben z.B.: produkt_name


Wie bekomme ich den Unterstrich weg? So dass mir nur noch die Wörter mit Leerzeichen getrennt ausgegeben werden. Bzw. das Ich den Unterstrich mit einem anderen Zeichen (Operator) ersetzen kann.

Verfasst: 27.10.2006 11:26
von schmidii
Würde hier vielleicht preg_replace funktionieren?

Verfasst: 27.10.2006 11:31
von larsneo
nachdem das hier ja kein frage und antwort spiel ist, brauchst du es eigentlich nur selber auszuprobieren :roll:
btw: viel spass auch bei eventuellen sonderzeichen ;-)

Verfasst: 27.10.2006 12:04
von schmidii
Bin ja schon dabei.

Sonderzeichen kommen nicht vor. Wenn etwas ersetzt werden muss dann ist dies immer nur ein Unterstrich.


Ich habe allerdings ein Problem mit dem Suchmuster.
Hier mein Ansatz:

Code: Alles auswählen

$pfad = "$path";
$file = basename($pfad);        // $file enthält den Wert "Dateiname.html"
$file = basename ($pfad,".html"); // $file enthält den Dateinamen 



echo $file;


$str = '$file';
$str = preg_replace('/\s\s+/', '_', $str);

echo $str;
Wie gebe ich in dem Script an das der Unterstrich (also das Suchmuster)von zwei Wörtern eingeschlossen wird?
Ich komme mit den Ausdrücken aus dem allgemeinen Beispiel von PHP.net nicht klar. Kannst Du mir vielleicht mal nen Link posten wo das erklärt wird?

Verfasst: 27.10.2006 12:36
von schmidii
Nachtrag:

Code: Alles auswählen

$pfad = "$path";
$file = basename($pfad);        // $file enthält den Wert "Dateiname.html"
$file = basename ($pfad,".html"); // $file enthält den Dateinamen 



echo $file;


$str = $file; 
$str = preg_replace("/([^@\s]+)_([-a-z0-9]+)\.+([.?a-z]{2,})/ix",  '-', $str); 

echo $str;


Das funktioniert schon besser. Jedoch wird der Unterstrich nicht ersetzt.
Ich habe Doch angegebne das der Unterstrich _ durch einen Bindestrich - ersetzt wird oder?

Ich probiere hier rum wie ein Weltmeister aber ich finde nicht den Fehler.

Verfasst: 27.10.2006 14:42
von Pyramide
Guck dir mal [php:str_replace] an.