Пропустите знак процента (%) в URL-адресе и получите точное его значение, используя php

Я пытаюсь передать процент (%) знак в url как

%B6011000995504101^SB 

но когда я эхо, он возвращается

 ♦011000995504101^SB 

Я хочу получить то же значение, что и в URL.

Я попытался использовать функцию urlencode (), но это дает мне вывод вроде этого …

 %B6011000995504101%5ESB 

пожалуйста, помогите мне в этом

Ответ:

Чтобы отправить знак % в URL-адрес, вместо этого отправьте %25 .

В вашем случае, чтобы php мог видеть знак процента, вы должны передать символьную строку %25B6011000995504101^SB на сервер.

Зачем:

В URL-адресах знак процента имеет особое значение. Используется для кодирования специальных символов. Например, & является разделителем между параметрами, поэтому, если вы хотите, чтобы ваш параметр фактически содержал & , вместо этого вы пишете %26 . Поскольку знак процента используется для кодирования специальных символов, он также является специальным символом, поэтому, если вы хотите на самом деле отправить знак процента, он также должен быть закодирован. Кодировка для знака процента составляет %25 .

Прежде чем включать сырую строку в URL-адресе, неплохо передать ее через urlencode так:

 <?php $original='%B6011000995504101^SB'; $updated=urlencode($original); echo "<a href=\"some_page.php?$updated\">Link here</a>"; ?> 

Получающая страница будет знать, что делать – попробуйте этот пример на своем веб-сервере:

 <?php if($_GET['argument']) { echo "<p>You passed in the argument &quot;$_GET[argument]&quot;</p>"; }else { echo "<p>No argument was passed.</p>"; } $original='%B6011000995504101^SB'; $updated=urlencode($original); echo "<a href=\"urlencode.php?argument=$updated\">Link here</a>"; ?> 

(назовите файл urlencode.php )