Helpers – Url – Manipulación de URls
Las URLs es la dirección o link con que navegamos entre páginas y consta de diferentes partes y datos. Esta librerÃa facilita la gestión de las partes de las urls asà como obtener los parámetros y datos de tuviese.
/** * HelperUrl.php * @author Code Develium */ namespace Helpers; /** * Class HelperUrl */ abstract class HelpUrl { /** * Devuevle la url actual * @return string */ public static function getUrlActual() { $dominio = HelpServer::getDominioHttp(); $archivo = HelpServer::getValue('SCRIPT_NAME'); $qs = HelpServer::getQueryString(); if (empty($qs)) { return $dominio.$archivo; } else { return $dominio.$archivo.'?'.$qs; } } /** * Devuelve el query string de la url * * @param string $url * * @return string */ public static function getQueryString($url) { $ret = strpos($url, '?'); if (false === $ret) { return null; } return substr($url, ($ret + 1), strlen($url)); } /** * Devuelve el contenido de la página de la url * * @param string $httpUrl * * @return string */ public static function getPageContent($httpUrl) { $file = fopen($httpUrl, "r"); $line = ''; if ($file) { while (!feof($file)) { $line .= fread($file, 1024 * 50); } return $line; } return false; } /** * RDevuelve el nombre del host de una url * Ex: "http://www.php.net/index.html" => www.php.net * * @param string $url * * @return string */ public static function getHost($url) { $matches = []; preg_match("/^(http|https|ftp|ftps|sftp:\/\/)?([^\/]+)/i", $url, $matches); return $matches[ 2 ]; } /** * Devuelve un array con los parametros y valores o null si no hay * valores * * @param string $url * * @return array */ public static function getArrayParams($url) { if (false === strpos($url, '&')) { // No hay parámetros return null; } $q = self::getQueryString($url); $t = []; $a = explode('&', $q); foreach ($a as $key => $value) { $b = explode('=', $a[ $key ]); $t[ $b[ 0 ] ] = $b[ 1 ]; } return $t; } /** * Codifica una url a carcters % tots els caracters no alfanumrics * Ex: 'http://www.php.es/par word/any?no=true&si=23' * 'http%3A%2F%2Fwww.php.es%2Fpar%20word%2Fany%3Fno%3Dtrue%26si%3D23' * * @param string $url * * @return string */ public static function encode($url) { return urlencode($url); } /** * Decodifica una url amb carcters % a caracters no alfanumrics * Ex: 'http%3A%2F%2Fwww.php.es%2Fpar%20word%2Fany%3Fno%3Dtrue%26si%3D23' * 'http://www.php.es/par word/any?no=true&si=23' * * @param string $urlEncoded * * @return string */ public static function decode($urlEncoded) { return urldecode($urlEncoded); } /** * Añade un parámetro que es un numero aleatorio. * Se usa para que cada url sea diferente * * @param string $url * @param int $lenRandom * * @return string */ public static function addRandom($url, $lenRandom = 4) { $sep = '&'; if (false === strpos($url, '?')) { $sep = '?'; } $url .= $sep. "rnd=" . HelpString::createRandom($lenRandom); return $url; } /** * Devuelve una nueva url con un parrámetro/valor añadido * * @param $url * @param $parametro * @param $valor * * @return string */ public static function addParam($url, $parametro, $valor) { $sep = '&'; if ( false === strpos($url, '?')) { $sep = '?'; } $url .= $sep.$parametro.'='.$valor; return $url; } }