После того, как вы urlencode()
отредактировали его, также закодируйте получившиеся знаки плюс:
$encoded_url = urlencode($original_url);
$final_url = str_replace('+', '%2B', $encoded_url);
Или же вы можете заменить пробелы в URL-адресе сначала на +
, а затем urlencode()
результат:
$spaceless_url = str_replace(' ', '+', $original_url);
$final_url = urlencode($spaceless_url);
Если ваш собственный сайт в первую очередь требует, чтобы параметры в строке запроса были закодированы, у вас не возникло бы проблемы (поскольку в исходном URL не было бы незашифрованного пробела).