Scripts

Zelf URL's encoden in PHP

Zelf URLs encoden en decoden, in PHP.

urlencode.php
<?php

function mijn_urlencode($url) : string
{
  $hex = [
    '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
    'A', 'B', 'C', 'D', 'E', 'F'
  ];
  $buffer = '';
  $lengte = strlen($url);
  for ($i = 0; $i < $lengte; $i++) {
    $c = $url[$i];
    if (($c < '0' && $c !== '-' && $c !== '.')
      || ($c > '9' && $c < 'A')
      || ($c > 'Z' && $c < 'a' && $c !== '_')
      || ($c > 'z'))
    {
      $c = ord($c);
      $buffer .= '%' . $hex[$c >> 4] . $hex[$c & 15];
    }
    else {$buffer .= $c;}
  }
  return $buffer;
}
rawurlencode.php
<?php

function mijn_rawurlencode($url) : string
{
  $hex = [
    '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
    'A', 'B', 'C', 'D', 'E', 'F'
  ];
  $buffer = '';
  $lengte = strlen($url);
  for ($i = 0; $i < $lengte; $i++) {
    $c = $url[$i];
    if ($c === ' ') {$buffer .= '+';}
    elseif (($c < '0' && $c !== '-' && $c !== '.')
      || ($c > '9' && $c < 'A')
      || ($c > 'Z' && $c < 'a' && $c !== '_')
      || ($c > 'z' && $c !== '~'))
    {
      $c = ord($c);
      $buffer .= '%' . $hex[$c >> 4] . $hex[$c & 15];
    }
    else {$buffer .= $c;}
  }
  return $buffer;
}
urldecode.php
<?php

function mijn_urldecode($url) : string
{
  $buffer = '';
  $lengte = strlen($url);
  for ($i = 0; $i < $lengte; $i++) {
    if ($url[$i] === '%') {
      $buffer .= chr(hexdec($url[$i + 1] . $url[$i + 2]));
      $i += 2;
    }
    else { $buffer .= $url[$i]; }
  }
  return $buffer;
}

Reacties

0
Nog geen reacties.