У меня есть база данных, содержащая таблицу с именем песен с полем заголовок .Теперь, если мой URL-адрес http://www.foo.com/songs/xxx
(xxx = название песни), apache молча перенаправляет на страницу, которая выглядит примерно так: /song.php?title=xxx
.
Чтобы украсить URL-адреса, я преобразую пробелы в подчеркивания (потому что я знаю, что некоторые браузеры отображают% 20 вместо пробела, а не% 20really% 20user% 20friendly% 20ya% 20know% 20what% 20i% 20mean).
Существует загвоздка, если заголовок содержит пробелы и подчеркивания (например,DJ_underscore fx
) и скрипт преобразует его в DJ_underscore_fx
sql:
select * from songs where songs.title=xxx
не может его найти.
вот эскиз, чтобы быть более конкретным:
- скрипт извлекает различные заголовки из базы данных
- преобразует все пространство в подчеркивание (например,
name_of the song
-> name_of_the_song
) - выводит ихв качестве ссылок (например,
<a
href="/songs/name_of_the_song">name_of_the_song</a>
) - пользователь нажимает на ссылку и запрашивает документ
- apache молча перенаправляет (например,
/songs/name_of_the_son
-> /song.php?title=name_of_the_song
) - song.php извлекает конкретные данные (например,
select * from songs where songs.title=name_of_the_song
)
хорошо, вы видите, что нетВ базе данных, которая выглядит как name_of_the_song
, но name_of the song
.
Как мне управлять целым, чтобы мой URL оставался чистым, а поле title не ограничивалось определенным количествомзначений (может иметь пробелы, подчеркивание, тире, ну что угодно)?