Но я хочу urlencode моего URL, потому что он сделан из предоставленных пользователем данных
Решение состоит в том, чтобы не кодировать полный URL-адрес, кодировать только те биты, которые необходимо кодировать. Простое кодирование «остального» также обязательно будет неудачным. Например, в этом примере все косые черты, ?
и =
должны оставаться неизменными:
http://www.example.com/rewritten directory/index.php?id=Hello World, how are you?
но вам нужно кодировать rewritten directory
и Hello World, how are you?
для того, чтобы все это сформировало действительный URL.
Как и в случае кодировок символов, вам нужно с самого начала убедиться, что вы знаете, как это кодируется. Решение вашей проблемы (если она вообще есть - header()
, скорее всего, будет работать без urlencode () в первую очередь!), Вероятно, будет дальше в вашем коде.