Ersetzen Sie Leerzeichen durch einen Bindestrich in einer URL
Konnte ich ersetzen von Sonderzeichen wie : ; /etc in meine URL, aber jetzt hat Sie die Räume wieder. Hier ist mein code:
<h3><a href="<?php echo (isset($row_getDisplay['post_id']) ? $row_getDisplay['post_id'] : ''); ?>_<?php echo str_replace(array(':', '\\', '/', '*'), ' ', urldecode($row_getDisplay['title'])); ?>.html" ><?php echo (isset($row_getDisplay['title']) ? $row_getDisplay['title'] : ''); ?></a></h3>
Ich will es so wie es ist, entfernen Sie Sonderzeichen sowie ersetzen der Leerzeichen durch Bindestriche.
- Es ist ziemlich offensichtlich, dass Sie nun Räumen, da Sie Sie es Sie sich mit:
str_replace(array(':', '\\', '/', '*'), ' ', urldecode($row_getDisplay['title']));
. Ersetzen Sie es mit "nichts", z.B.:str_replace('yourChar', '', 'yourString');
. Danach kann man ersetzen, die übrigen Räume mit Bindestrichen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen
str_replace(' ', '-', $string);
Können Sie die Funktion preg_replace:
Diese wird, ersetzen Sie alle Instanzen der Raum mit einem einzigen '-' dash. Also, wenn Sie einen Doppel -, Dreibett -, etc.-Raum, dann wird es immer noch geben Ihnen einen Strich.
EDIT: das ist ein generec Funktion habe ich für das Letzte Jahr genutzt, um meine URLs ordentlich
Wird es konvertiert alle nicht-alphanumerische Zeichen, Leerzeichen, dann konvertieren Sie alle Platz, um zu Rennen, dann schneiden Sie jede Striche auf der Ende /Anfang des Strings. Dies funktioniert besser, als wenn man Liste von Sonderzeichen in Ihren str_replace