Я работаю с подачей SOAP в тот момент, когда требуется прохождение некоторых специальных переменных (вытащил из другого сырья)сохранить символ «+» в URL переменной
например.
+blPsNeYyjvRQhCiHQEISg==
Это абсолютно необходимо, чтобы переменная была размещена так, как есть, но когда я делает его в PHP скрипт .. это обрабатывать +
символ как +
действия и обнажая его и пытается выполнить расчет
Так что, если бы у меня было blPsNeYyj+vRQhCiHQEISg==
, строка была отправлена как blPsNeYyj + vRQhCiHQEISg
и вызывает ошибки.
Если я заменяю +
%2b
, он работает, поэтому я попробовал URL-кодирование, и он все равно не работает. Это происходит потому, что ==
в конце должен остаться ==
Таким образом, в итоге мне нужны все экземпляры +
заменены %2b
Я пытался
$service = preg_replace("/\+/","%2B",$service);
, но это также не удается, и просто возвращает NULL
ОТВЕТ:
Хранится это си mple, чтобы проиллюстрировать этот процесс, но, чтобы получить корм, чтобы работать должным образом, я должен был использовать очень причудливый процесс
$service = (urlencode($_REQUEST['service']));
$service = substr($service,0,-6);
$service = $service.'==';
закодировать его, чтобы сохранить + но затем преобразуется в «=» в% 3d которая остановила подачу SOAP за работой.
Удалить% 3d% 3d
Readd два '==' и представить
и это работает ...
Go рисунок ..
Попробуйте 'preg_replace ('/ \ + /', ...); '. Символ «плюс» является квантором в регулярных выражениях. – Lumen
Я исправил свой пост, попробуйте ('/ \\ + /'); –
Существует различие между одинарными кавычками и двойными кавычками. Если вы используете двойные кавычки, вам также необходимо избегать обратной косой черты: ''/\\ +/"' или ''/\ +/''. – Lumen