Подтвердить что ты не робот

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

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

%B6011000995504101^SB

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

♦011000995504101^SB

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

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

%B6011000995504101%5ESB

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

4b9b3361

Ответ 1

Ответ:

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

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

Почему:

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

Ответ 2

Прежде чем включать сырую строку в 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)