Динамический URL в PHP не работает при передаче "&" в теге href
У меня есть следующий URL
http://localhost:8777/business.php?id=Mobiles and Tablets
Когда я передаю "и" в id, это перенаправляет меня на нужную страницу, но когда я передаю
http://localhost:8777/business.php?id=Mobiles & Tablets
и т. е. амперсанд в id дает ошибку 404.
Мой PHP-код выглядит так:
<a href="business.php?id=<? echo $cat;?>"><? echo $cat;?></a>
2 ответа
Решение
Вы должны использовать urlencode()
в вашем PHP-коде.
<a href="business.php?id=<? echo urlencode($cat) ;?>"><? echo $cat;?></a>
Будет сгенерирована ссылка как:
http://localhost:8777/business.php?id=Mobiles+%26+Tablets
Space
будет преобразован в +
, а также &
будет преобразован в %26
Используйте php urlencode ()
Эта функция удобна при кодировании строки, которая будет использоваться в части запроса URL-адреса, в качестве удобного способа передачи переменных на следующую страницу.
И используйте urldecode() для декодирования вашего закодированного аргумента
Декодирует любую кодировку%## в данной строке. Символы плюса ('+') декодируются до пробела.