Esta clase no la hize por gusto, fué para auxiliar a un amigo que necesitaba unas funciones que hicieran lo que dice el titulo, pasar una url como parametro y que las funciones cortaran el protocolo, dominio, y los datos despues del dominio
Código:
Devuelve:
linkgl.com
https://
hola/archivos/linkgl_es_guapisimo/data.php?hola_indetectables
Código:
<?php
/*
Autor linkgl
3/03/11
funcion-linkgl.blogspot.com
*/
class URL
{
public $dominio;
var $protocolo,$almacen,$aplica,$buffer;
//extrae el dominio de una url
public function __construct($dom)
{
$this->dominio=$dom;
$this->almacen=explode("/",$this->dominio);
if(strpos($this->dominio,"//")!==false)
{
echo $this->almacen[2]."<br>";
}
else
{
echo $this->almacen[0]."<br>";
}
}
//extrae el protocolo (http, https, ftp...)
public function extraerPROTOCOLO()
{
if(strpos($this->dominio,"//")!==false)
{
$this->protocolo=explode("//",$this->dominio);
echo $this->protocolo[0]."<br>";
}
else
{
echo "No se encontro el protocolo <br>";
}
}
//extrae las carpetas de la url /archivos/blabla/algo.php?id=45
public function extraerCARPETAS()
{
$this->aplica=explode("/",$this->dominio);
if(strpos($this->dominio,"//")!==false)
{
for($i=3;$i<count($this->aplica)-1;$i++)
{
$this->buffer.=$this->aplica[$i]."/";
}
$this->buffer.=$this->aplica[count($this->aplica)-1];
}
else
{
for($i=1;$i<count($this->aplica)-1;$i++)
{
$this->buffer.=$this->aplica[$i]."/";
}
$this->buffer.=$this->aplica[count($this->aplica)-1];
}
echo $this->buffer."<br>";
}
}
//Ejemplo de uso
$obj=new URL("https://linkgl.com/hola/archivos/linkgl_es_guapisimo/data.php?hola_indetectables");
$obj->extraerPROTOCOLO();
$obj->extraerCARPETAS();
?>Devuelve:
linkgl.com
https://
hola/archivos/linkgl_es_guapisimo/data.php?hola_indetectables