Заменить% на - в URL PHP

Хорошо, у меня есть один, может быть, глупый вопрос. На моем веб-сайте у меня есть параметры поиска, то есть ввод с помощью метода GET, но когда кто-то вводит длинное разделенное слово, например

Я ИНОГДА ПУСТО

я получил это в своем URL

http://www.example.com/search.php?page=1&txtPretraga=I%AM%SOMETIMES%BLANK

Я не знаю, как это изменить? Я хочу чистый URL-адрес, как этот http://www.example.com/search.php?page=1&txtPretraga=I-AM-SOMETIMES-BLANK

Я хочу изменить% с - в моем ULR

Есть идеи?

2 ответа

Решение

Вы можете использовать str_replace в своем php-коде: http://php.net/manual/en/function.str-replace.php

$search_qry = "Whatever%They%Type";
$replace = str_replace($search_qry, "%", "-");

РЕДАКТИРОВАТЬ: В случае ваших строк - они имеют пробелы, которые отображаются в% в URL, так что используйте это, прежде чем сделать ваш $_GET

$search_qry = "Whatever They Type";
$replace = str_replace($search_qry, " ", "-");

РЕДАКТИРОВАТЬ 2 Так как это $_GET - Javascript придется использовать для очистки строки перед ее отправкой. (используя jQuery и javascript здесь)

<script type = "text/javascript">
    $(document).ready(function(){
        $('.example-input').blur(function(){
            var str = $(this).val();
            var clean_str = str.replace(" ", "-");
            $(this).val(clean_str);
        });
    });
</script>

Это должно очистить строку в поле ввода еще до того, как она будет отправлена ​​через get. или вместо.blur вы можете использовать $('submit-button').click(function(){...

Или вы можете использовать файл.htaccess, чтобы переписать мод. Но я не знаю этого достаточно хорошо.

Хорошо, я получил решение проблемы:)

Это не вопрос для PHP, это для Javascript, и я написал эту функцию

<script type="text/javascript">
function provera() {
var x=document.forms["hsearch"]["txtPretraga"].value;
var n=str.replace(" ","-");
}
</script>
Другие вопросы по тегам