Pass a percent (%) sign in a url and get exact value of it using php
Solution 1:
Answer:
To send a %
sign in a url, instead send %25
.
In your case, in order for php to see a percent sign, you must pass the character string %25B6011000995504101^SB
to the server.
Why:
In URLs, the percent sign has special meaning. Is used to encode special characters. For example, &
is the separator between parameters, so if you want your parameter to actually contain an &
, you instead write %26
. Because the percent sign is used to encode special characters, it is also a special character, and so if you want to actually send a percent sign, it must also be encoded. The encoding for a percent sign is %25
.
Solution 2:
Before including a raw string in a URL it's a good idea to pass it through urlencode like so:
<?php
$original='%B6011000995504101^SB';
$updated=urlencode($original);
echo "<a href=\"some_page.php?$updated\">Link here</a>";
?>
The receiving page will know what to do - give this example a try on your webserver:
<?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>";
?>
(name the file urlencode.php)