- parse_url: documentation ( source)
- sprintf: documentation ( source)
<?php
$uri = 'https://www.algo.com/algo/algomas';
$parsed_uri = parse_url($uri);
$rebuilt_host_part =
($parsed_uri['user'] ? $parsed_uri['user'] : '') .
($parsed_uri['pass'] ? ':'.$parsed_uri['pass'] : '') .
($parsed_uri['user'] ? '@' : '') .
$parsed_uri['host'] .
($parsed_uri['port'] ? ':'.$parsed_uri['port'] : '');
$random = '_='.random_string('alnum', 3);
$parsed_uri['fragment'] .= $parsed_uri['fragment'] ? '&'.$random : $random;
$rebuilt_uri = sprintf('%s://%s%s%s',
$parsed_uri['scheme'],
$rebuilt_host_part,
$parsed_uri['path'],
$parsed_uri['query'] ? '?'.$parsed_uri['query'] : '',
$parsed_uri['fragment'] ? '#'.$parsed_uri['fragment'] : '');
$uri = $rebuilt_uri;
echo $uri;