funciones y snippets php

Cuando programas en PHP, como en cualquier lenguaje de programación, necesitas hacer uso de funciones específicas que en muchas ocasiones no dispones de una nativa. Aquí iré poniendo una recopilación de funciones o snippets que pueden ser de utilidad.

Funciones matemáticas

Cambiar la coma por un punto en los números decimales

Cuando trabajas con datos, sobre todo de terceros, obtienes datos numéricos separados por comas en vez de por puntos. El estándar es el punto, por lo que tienes que reemplazarlo.

//
$pi = "3,14159265359";

  function formatear($numero)
  {
    return (float)str_replace(",",".", $numero);
  }

  echo formatear($pi); // devuelve 3.14159265359

 

Calcular la media

Tan sencillo como pasarle un array con los datos.

$array = array(20, 30, 20, 50, 100);

function media(array $array)
{
	$cantidad = count($array);
	return array_sum($array)/$cantidad;
}

//devuelve 44

 Calcular la mediana

$array = array(20, 20, 20, 30, 30, 30, 20, 50, 100, 10000, 1000000);

function mediana(array $array)
{
	sort($array);
    $count = count($array); //total numbers in array
    $middleval = floor(($count-1)/2); // find the middle value, or the lowest middle value
    if($count % 2) { // odd number, middle is the median
    	$median = $array[$middleval];
    } else { // even number, calculate avg of 2 medians
    	$low = $array[$middleval];
    	$high = $array[$middleval+1];
    	$median = (($low+$high)/2);
    }
    return $median;
}

echo mediana($array);

//devuelve 30

 Desviación típica

Calcular la la desviación típica de un array cuyos valores son numéricos.

//a : El array de datos de los que calcular la desviación estándar. Observed que todos los valores del array serán convertidos a float.
//sample: Indica si a representa una muestra de la población; por omisión es FALSE.

    function stats_standard_deviation(array $a, $sample = false) {
      $n = count($a);
      if ($n === 0) {
        trigger_error("The array has zero elements", E_USER_WARNING);
        return false;
      }
      if ($sample && $n === 1) {
        trigger_error("The array has only 1 element", E_USER_WARNING);
        return false;
      }
      $mean = array_sum($a) / $n;
      $carry = 0.0;
      foreach ($a as $val) {
        $d = ((double) $val) - $mean;
        $carry += $d * $d;
      };
      if ($sample) {
       --$n;
     }
     return sqrt($carry / $n);
   }
 }

 


Trabajando con archivos

 Descargar un archivo a un directorio local

Cuando buscaba esta función o información para desarrollarla, en la mayoría de las ocasiones encontraba una función o snippet  para forzar la descarga de archivos a un usuario, no para descargar un archivo de otra página web. La función es la siguiente:

function download_file($file_url, $save_to)
{
  $content = file_get_contents($file_url);
  file_put_contents($save_to, $content);
}

download_file($url_file, $file_name);

 Forzar la descarga de un archivo

Cuando quieres que un usuario se descargue un archivo. Muy útil para la descarga imágenes.

<?php
$file = "http://example.com/go.exe"; 

header("Content-Description: File Transfer"); 
header("Content-Type: application/octet-stream"); 
header("Content-Disposition: attachment; filename=\"$file\""); 

readfile ($file); 
?>

Tipos de content-Type

Esto es útil cuando generas contenidos dinámicos como una imagen o un javascript. También se usa como el ejemplo anterior, para forzar la descarga de archivos.

header('Content-Type: application/atom+xml');
header('Content-Type: text/css');
header('Content-Type: text/javascript');
header('Content-Type: image/jpeg');
header('Content-Type: application/json');
header('Content-Type: application/pdf');
header('Content-Type: application/rss+xml; charset=ISO-8859-1');
header('Content-Type: text/plain');
header('Content-Type: text/xml');

 

 

You may also like...

Deja un comentario