Динамический 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() для декодирования вашего закодированного аргумента

Декодирует любую кодировку%## в данной строке. Символы плюса ('+') декодируются до пробела.

Другие вопросы по тегам