Busca la funcion que necesitas!

sábado, 26 de marzo de 2011

PHP - Como saber que numero en un array es el mas grande

En un foro preguntaron como puedo hacer un programa que reciba 10 números en un array y me retorne el numero mas grande y su posición en el array, pues es un ejercicio sencillo y lo comparto para aquella persona que se inicia en la programación.



Código:
<?php
$entrada=array(1,2,3,10,4,5,6,7,48,9); //Los 10 numeros de entrada
$mayor=$entrada[0]; //Ponemos que el mayor es el primer elemento
//Se cambia automaticamente en el bucle
$pos=0; //la posicion en 0
//El bucle (lo importante)
//Iniciamos un bucle del tamaño de la cantidad de elementos del array
for($j=0;$j<count($entrada);$j++)
{
  //Si mayor es menor que el elemento elejido
  if($mayor<$entrada[$j])
  {
    //cambiamos el mayor
    //y obtenemos su posicion
    $mayor=$entrada[$j];
    $pos=$j;
  }
}
echo $mayor; //mostramos el que quedo mayor
echo " posicion: ".$pos; //y su posicion 
?>

C - Obtener la ruta actual del programa

Bueno en algun momento me interesó obtener la ruta actual del programa que estaba programando, esto lo podía hacer con la API GetCommandLine pero me dejaba comillas dobles en la cadena con la ruta y también puede hacerse con la API GetModuleHandle, pero un amigo (ps1c0s1s) alguna vez me dijo como hacer esto sin usar las API's de windows así que debería ir para linux también, la forma es sencilla solo hay que pasar el argumento 0 del programa así:

Código:
int main(int argc, char *argv[])
{
  printf("%s",argv[0]);
  getchar();
  return 0;
}

ahí argv[0] contiene la ruta del programa :P saludos!.

lunes, 21 de marzo de 2011

PHP - Funcion para extraer un texto entre dos separadores

Extrae una frase entre dos separadores diferentes, si no se encuentra el primer separador en la frase retorna false, si encuentra el primero pero no el segundo retorna la frase desde la posicion del primero hasta el final de la frase, si encuentra los dos retorna el texto entre los dos

Code+uso:

Código:
<?php
/* 
  -> By Linkgl for Indetectables.net
  -> Indetectables Coders 21/03/11
  -> funcion-linkgl.blogspot.com
*/
function ExtraerFrase($separador1,$separador2,$cadena)
{
  if(strpos($cadena,$separador1)!==false)
  {
    $pos=strpos($cadena,$separador1);
    $a=substr($cadena,$pos+strlen($separador1));
    if(strpos($a,$separador2)!==false)
    {
      $npos=strpos($a,$separador2);
      $b=substr($a,0,$npos);
      return $b;
    }
    else
      return $a;
  }
  else
    return false;
}

echo ExtraerFrase("www.","/","www.linkgl.com/soy_indetectables");
//Devuelve linkgl.com
?>

lunes, 14 de marzo de 2011

PHP - Encontrar navegador, IP y Sistema operativo

Ahora les traigo esta función sencilla que hice que devuelve un array con la IP, el navegador y el sistema operativo de la persona que entre a su sitio web, les dejo la función con un ejemplo de uso:

<?php
/*By linkgl
funcion-linkgl.blogspot.com
devuelve un array con la ip, navegador y OS
*/
function DatosPrivados()
{
  $temp=array();
  $ip=$_SERVER['REMOTE_ADDR'];
  $datos=$_SERVER['HTTP_USER_AGENT'];
  array_push($temp,$ip);
  if(strpos($datos,"Windows")!==false)
    array_push($temp,"Windows");
  elseif(strpos($datos,"Mac")!==false)
    array_push($temp,"Mac");
  elseif(strpos($datos,"Linux")!==false)
    array_push($temp,"Linux");
 
  if(strpos($datos,"MSIE")!==false)
    array_push($temp,"Internet Explorer");
  elseif(strpos($datos,"Firefox")!==false)
    array_push($temp,"Firefox");
  elseif(strpos($datos,"Chrome")!==false)
    array_push($temp,"Google Chrome");
  elseif(strpos($datos,"Safari")!==false)
    array_push($temp,"Safari");
  elseif(strpos($datos,"Opera")!==false)
    array_push($temp,"Opera");
  else
    array_push($temp,"Navegador desconocido");
 
  return $temp;  
 
}

//USO
$llamar=DatosPrivados();
echo $llamar[0];//muestra la IP
echo $llamar[1];//muestra el Sistema Operativo
echo $llamar[2];//muestra el navegador

?>

jueves, 3 de marzo de 2011

PHP POO - Clase para extraer url entera, dominio y protocolo

Esta clase la hize para un compañero, extrae el dominio, protocolo y url entera de un enlace proporcionado, les comparto el 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("linkgl.com/hola/archivos/linkgl_es_guapisimo/data.php?hola_indetectables");
$obj->extraerPROTOCOLO();
$obj->extraerCARPETAS();
?>