ERLEDIGT
JA
JA
ANTWORTEN
10
10
ZUGRIFFE
462
462
EMPFEHLEN
-
02.11.08 08:34 #1
- Registriert seit
- Apr 2007
- Beiträge
- 60
Versuche gerade meine Link für mod_rewrite aufzupolieren. Natürlich müssen da einige Zeichen raus und ersetzt werden. Jetzt meine Frage an euch, macht man das normal so? Oder gibt es da einfachere Lösungen?
Danke für eure Antworten.
PHP-Code:function urlfix($out)
{
$out = str_replace(" ","-",$out);
$out = str_replace("'","",$out);
$out = str_replace(".","",$out);
$out = str_replace("!","",$out);
$out = str_replace("&","and",$out);
$out = str_replace("(","",$out);
$out = str_replace(")","",$out);
$out = str_replace("ö","oe",$out);
$out = str_replace("ä","ae",$out);
$out = str_replace("ü","ue",$out);
return $out;
}
-
Da gibts doch noch viel mehr zeichen :P
Ich mach das so (bin aber gerne für Verbesserungsvorschläge zu haben):
- alles kleinmachen (aus A wird a)
- Alles ersetzten was man halt ersetzten möchte
(also z.b. ö zu oe)
- Mit preg_replace alles andere rausschmeissen
-
Moin,
str_replace() erlaubt bei den ersten beiden Parametern auch Arrays, das dürfte die Sache performanter gestalten, aber ansonsten kann man das durchaus so machen
-
02.11.08 14:27 #4
- Registriert seit
- Apr 2007
- Beiträge
- 60
Danke für eure Beiträge!
Hab das jetzt wie Sven vorgeschlagen hat gelöst.
An sich genügt mir das schon. Mehr Zeichen brauche ich gar nicht und funktioniert. Danke euch.PHP-Code:function urlfix($in)
{
$original_url = array(' ', '\'', '.', '!', '/', '&', '(', ')', 'ö', 'Ö', 'ä', 'Ä', 'ü', 'Ü');
$manipuliert_url = array('-', '', '', '', '-', 'and', '', '', 'oe', 'Oe', 'ae', 'Ae', 'ue', 'Ue');
$out = str_replace($original_url, $manipuliert_url, $in);
return $out;
}
-
Sofern du nicht sicher sein kannst, dass andere unerwünschte Zeichen dort nicht vorkommen werden, solltest du noch BadMatts Vorschlag aufgreifen:
alles andere rausschmeissen
-
Arbeite hier lieber mit einem regulären Ausdruck, der alle außer den erlaubten Zeichen ersetzt, beispielsweise:
PHP-Code:trim(preg_replace('/-+/', '-', preg_replace('/[^a-zA-Z0-9\-]/', '-', $string)), '-')
Markus Wulftange
-
03.11.08 15:57 #7
- Registriert seit
- Apr 2007
- Beiträge
- 60
Danke noch für eure Antworten.
Deines würde auch funktionieren Gumbo, jedoch wenn zb. ein ö vorkommt, löscht er es mir komplett raus. Lieber wäre es mir das er ein oe daraus macht. Kann man das in deinen Codeblock noch irgendwie unterbringen? Oder geht das dann nur mit meinen Code?
Danke!
-
Bau doch einfach seinen Ausdruck dazwischen?
Also erst alles bekannte ersetzen, danach alles ersetzen was nicht geplant ist.
-
04.11.08 15:52 #9
- Registriert seit
- Apr 2007
- Beiträge
- 60
Hast natürlich recht! Auf das hätte ich auch gleich kommen können. Wie auch immer, jetzt ist es perfekt! Danke!
-
Hab ich das nicht auch schon vorgeschlagen? xP
-
04.11.08 20:31 #11So mach ich das im Allgemeinen. Erstmal alles lowercase, dann Umlaute und Klammern entfernen, anschließend alles Unerlaubte filtern. Zum Schluss werden noch überzähllige - ausgefiltert.PHP-Code:
<?php
function makeStringToURL($string)
{
$string = strtolower($string);
$r = array(
"ß" => "ss",
"ä" => "ae",
"ö" => "oe",
"ü" => "ue"
);
foreach ($r as $replace => $search) {
$string = str_replace($replace, $search, $string);
}
$string = preg_replace('/[\(\)\[\]\{\}]/', '', $string);
$string = preg_replace('/[^a-z0-9-]/', '-', $string);
$string = preg_replace('/-{2,}/', '-', $string);
if (substr($string, 0, 1) == "-") {
$string = substr($string, 1);
}
if (substr($string, -1) == "-") {
$string = substr($string, 0, -1);
}
return $string;
}
?>Gruß,
Felix 'kunsi' Kunsmann
--------------------------------------------------------------------------------
Dem Kunsi sein Blog (Also … äh … meins halt :) | Galerie
Jabber: kunsi@jabber.ccc.de
Ähnliche Themen
-
Mod_Rewrite Problem adresse.de/activate/code
Von Kalma im Forum Hosting & WebserverAntworten: 8Letzter Beitrag: 23.10.09, 21:25 -
Scheitelpunkte manipulieren
Von Aussi008 im Forum 3D Studio MaxAntworten: 2Letzter Beitrag: 11.06.08, 08:10 -
URL manipulieren
Von Sasser im Forum PHPAntworten: 9Letzter Beitrag: 25.03.08, 16:39 -
highlight_string wenn Code zwischen [code] [/code]
Von partykiller im Forum PHPAntworten: 3Letzter Beitrag: 22.04.03, 13:10 -
I-Explorer manipulieren
Von Gabi im Forum Microsoft WindowsAntworten: 7Letzter Beitrag: 18.11.02, 22:11





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren