Пропустите знак процента (%) в URL-адресе и получите точное его значение, используя php
Я пытаюсь передать процент (%) в url как
%B6011000995504101^SB
но когда я эхо, он возвращает
♦011000995504101^SB
Я хочу получить то же значение, что и в URL.
Я попытался использовать функцию urlencode(), но он дает мне вывод вроде этого...
%B6011000995504101%5ESB
Пожалуйста, помогите мне в этом отношении
Ответы
Ответ 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 "$_GET[argument]"</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)