Todo sobre los Scripts PHP

Publicado por el 20 , octubre, 2015, en DISEÑO & PROGRAMACIÓN, Sin comentarios

Como a mi, y supongo que a muchos otros programadores a veces nos gusta utilizar scripts en PHP ya realizados. Además de ahorrarnos bastante tiempo en nuestros desarrollos. Muchas veces aprendemos de ellos y nos dan nuevas ideas para realizar otros scripts útiles para todo el mundo.

Bueno pues hoy os voy a dejar el primer volumen de la serie que iré posteando en el blog.

Script php que calcula Distancias entre dos puntos

Aquí hay una función muy útil que calcula distancias de un punto a otro usando latitudes y longitudes. La función puede devolvernos distancias en millas, kilómetros o millas náuticas

<?
function distance($lat1, $lon1, $lat2, $lon2, $unit) {

$theta = $lon1 – $lon2;
$dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) +  cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta));
$dist = acos($dist);
$dist = rad2deg($dist);
$miles = $dist * 60 * 1.1515;
$unit = strtoupper($unit);

if ($unit == “K”) {
return ($miles * 1.609344);
} else if ($unit == “N”) {
return ($miles * 0.8684);
} else {
return $miles;
}
}
?>

Forma de uso
<? echo distance(32.9697, -96.80322, 29.46786, -98.53506, "k")." kilometros"; ?>

Obtener el tiempo actual de donde quieras con la API de google

Este script te devolverá el tiempo que hace en el país o cuidad del mundo que desees saber, lo único que tienes que hacer es cambiar MITIEMPO por la dirección deseada.

<?
$xml = simplexml_load_file('http://www.google.com/ig/api?weather=MITIEMPO');
$information = $xml->xpath("/xml_api_reply/weather/current_conditions/condition");
echo $information[0]->attributes();
?>



Convierte segundos a tiempo (años,meses,dias,horas…)

Función php que convertirá segundos en años,meses,días,horas y etc.

<?php
function Sec2Time($time){
if(is_numeric($time)){
$value = array(
"years" => 0, "days" => 0, "hours" => 0,
"minutes" => 0, "seconds" => 0,
);
if($time >= 31556926){
$value["years"] = floor($time/31556926);
$time = ($time%31556926);
}
if($time >= 86400){
$value["days"] = floor($time/86400);
$time = ($time%86400);
}
if($time >= 3600){
$value["hours"] = floor($time/3600);
$time = ($time%3600);
}
if($time >= 60){
$value["minutes"] = floor($time/60);
$time = ($time%60);
}
$value["seconds"] = floor($time);
return (array) $value;
}else{
return (bool) FALSE;
}
}
?>

Script php para almacenamiento de Caché

Si tu proyecto web no esta basado en un framework o en un CMS, puedes implementar un sistema de almacenamiento de caché en tu sitio con este código fácilmente. El código es muy simple pero sirve para webs pequeñas.

<?php
// Define la ruta y nombre del archivo que se almacenara el cache
$cachefile = 'cached-files/'.date('M-d-Y').'.php';
// define el tiempo que queremos esperar el archivo en segundos.Yo puse el mio en 5 horas.
$cachetime = 18000;
// Revisa si el cache sigue fresco (activo). En el caso de que si lo incluye y sale
if (file_exists($cachefile) && time() - $cachetime < filemtime($cachefile)) {
include($cachefile);
exit;
}
// Si no hay archivo o es demasiado viejo. Renderiza la pagina y muestra el HTML
ob_start();
?>
<html>
todo tu html aca
</html>
<?php
// Listo!. Guardamos el cache en un archivo
$fp = fopen($cachefile, 'w');
fwrite($fp, ob_get_contents());
fclose($fp);
// finalmente se lo enviamos al navegador
ob_end_flush();
?>

Forzar una descarga de archivo

Muchos formatos como el mp3, avi, etc. Se reproducen directamente a través del navegador, pero si quieres que sean descargados directamente, el siguiente script ara lo deseado.

<?
function downloadFile($file){
$file_name = $file;
$mime = 'application/force-download';
header('Pragma: public');     // required
header('Expires: 0');        // no cache
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Cache-Control: private',false);
header('Content-Type: '.$mime);
header('Content-Disposition: attachment; filename="'.basename($file_name).'"');
header('Content-Transfer-Encoding: binary');
header('Connection: close');
readfile($file_name);        // push it out
exit();
}
?>

whois sencillo con PHP

Whois es un servicio muy útil para saber información acerca de un dominio: nombre del propietario,fecha de creación, etc. Usando php y el comando whois de unix es muy fácil hacer un script sencillo de whois en PHP.

<?
$domains = array('home.pl', 'w3c.org');

function creation_date($domain) {
$lines = explode(“n”, `whois $domain`);
foreach($lines as $line) {
if(strpos(strtolower($line), ‘created’) !== false) {
return $line;
}
}

return false;
}

foreach($domains as $d) {
echo creation_date($d) . “n”;
}

?>



Conocer la Latitud y Longitud de Una Dirección postal

Con la popularidad del API de google maps,los desarrolladores a menudo necesitamos conocer la longitud y latitud de determinado sitio. Este script php tomara la dirección como parámetro y devolverá en un array con la longitud y la latitud de la dirección deseada.

<?
function getLatLong($address){
if (!is_string($address))die("Todas las direcciones se validaran como srtings");
$_url = sprintf('http://maps.google.com/maps?output=js&q=%s',rawurlencode($address));
$_result = false;
if($_result = file_get_contents($_url)) {
if(strpos($_result,'errortips') > 1 || strpos($_result,'Did you mean:') !== false) return false;
preg_match('!center:s*{lat:s*(-?d+.d+),lng:s*(-?d+.d+)}!U', $_result, $_match);
$_coords['lat'] = $_match[1];
$_coords['long'] = $_match[2];
}
return $_coords;
}

?>


Acortar URL con bit.ly automáticamente con PHP

Esta es una funcion en php te ayudara a acortar URL’s con la API de bit.ly , con tu apikey y tu nombre de usuario simplemente tendrás acceso a este servicio.

<?
function bitly($url) {
$content = file_get_contents("http://api.bit.ly/v3/shorten?login=TUUSER&apiKey=TUAPIKEY&longUrl=".$url."&format=xml");
$element = new SimpleXmlElement($content);
$bitly = $element->data->url;
if($bitly){
return $bitly;
} else {
return '0';
}
}
?>

Forma de uso:
<? echo bitly("http://www.taringa.net"); ?>

 

 

 

Carlos Ramos Marquez

Amante del diseño y desarrollo en tecnologías Web y luchador en la gran batalla del posicionamiento SEO, elaborando las estrategias del comandante Google.

Ver mis posts - Ir a mi web

Sígueme:
TwitterFacebookGoogle Plus

Etiquetas:

, , ,

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies

ACEPTAR
Aviso de cookies