Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.php > #4668
| From | Daniel Walz <daniel.walz@gmx.de> |
|---|---|
| Newsgroups | de.comp.lang.php |
| Subject | URL aus Benutzereingabe erzeugen |
| Date | 2021-02-02 17:32 +0100 |
| Message-ID | <i7td4nF7nloU1@mid.individual.net> (permalink) |
Hallo,
ich programmiere derzeit meine zimelich in die Jahre gekommene Seite
www.drarbeit.de neu.
Zukünftig soll der Titel der Stellenangebote Teil der URL sein. Dazu
muss ich ihn natürlich anpassen. Leider habe ich keine entsprechende
Funktion gefunden, die ich als Vorbild hätte nehmen können, und mir
jetzt auf die schnelle folgende gebastelt:
function makeURL(string $s): string
{
// alles in Kleinbuchstaben
$url = mb_strtolower($s);
// Umlaute und ß ersetzen
$url = str_replace(['ä', 'ö', 'ü', 'ß'], ['ae', 'oe',
'ue', 'ss'], $url);
// Sonderzeichen ersetzen durch Minus
$url = preg_replace("/[^a-z0-9]/", "-", $url);
// mehrfache Minus ersetzen
$url = preg_replace("/-+/", "-", $url);
// Minus am Anfang und Ende ersetzen
$url = trim($url, '-');
return $url;
}
Das funktioniert auch soweit, ich habe es mit realen Eingaben hier mal
getestet:
https://www.yourmed.de/test.php
Was mich sehr irritiert ist, dass nach dem ersten preg-replace jetzt
alle " durch "quot" und & durch "amp" ersetzt sind anstatt durch ein
einfaches Minus. Wie kommt das zustande und wie kann ich es ändern?
Gruß
Daniel
Back to de.comp.lang.php | Previous | Next — Next in thread | Find similar
URL aus Benutzereingabe erzeugen Daniel Walz <daniel.walz@gmx.de> - 2021-02-02 17:32 +0100
Re: URL aus Benutzereingabe erzeugen Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2021-02-02 18:58 +0000
Re: URL aus Benutzereingabe erzeugen Daniel Walz <daniel.walz@gmx.de> - 2021-02-03 09:30 +0100
csiph-web