La Nota dijo:Post editado y mejorado para la version 5 de Taringa. Los usuarios con la version 5 se preguntaran, ¿pero que tiene de especial? , la simplicidad hace juego en la v5
Tener el script correcto en el momento adecuado puede ser un salvavidas para muchos desarrolladores. Hoy he compilado 10 scripts que espero puedan ser utiles en su evolucion como desarrolladores web.
Simple Sistema de Almacenamiento de Caché
Cuando tu proyecto web no esta basado en un CMS o en un framework, puede ser una buena idea implementar un sistema de almacenamiento de caché en tus paginas. El codigo 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();
?>
Calcula Distancias en PHP
Aqui hay una funcion muy util que calcula distancias de un punto A a un punto B usando latitudes y longitudes. La funcion puede regresar distancias en millas, kilometros o millas nauticas
<?
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"; ?>
Fuente
Convierte segundos a tiempo (años,meses,dias,horas...)
Util funcion que convertira segundos facilmente en años,meses,dias,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;
}
}
?>
Fuente
Forzar un archivo a descargar
Muchos formatos como el mp3, se reproducen directamente a traves del navegador, pero si prefieres que sean descargados directamente, el siguiente script te facilitara mucho el trabajo
<?
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();
}
?>
Fuente
Obtener el clima actual con el API de google
Quieres saber el clima de hoy? Este script te lo hara saber, en tan solo 3 lineas de codigo, lo unico que tienes que hacer es cambiar DIRECCION por la direccion deseada
<?
$xml = simplexml_load_file('http://www.google.com/ig/api?weather=DIRECCION');
$information = $xml->xpath("/xml_api_reply/weather/current_conditions/condition");
echo $information[0]->attributes();
?>
Fuente
whois basico con PHP
Whois es un servicio muy util para saber informacion basica acerca de un dominio: nombre del propietario,fecha de creacion, etc. Usando php y el comando whois de unix es muy facil hacer un script basico de whois en PHP. Por favor note que el comando whois debe estar instalado en el servidor antes de usarlo
<?
$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";
}
?>
Fuente
Obtener Latitud y Longitud de Una Direccion
Con la popularidad del API de google maps,los desarrolladores a menudo necesitaran saber sobre la longitud y latitud de determinado lugar. Esta util funcion tomara una direccion como parametro y devolvera en un array ambos datos: Longitud y latitud.
<?
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;
}
?>
Fuente
Obtener el dominio del FavIcon usando PHP y Google
En estos dias muchos websites o WebApps estan robando favicons de otras webs. Mostrar un favicon en tu sitio es muy facil con php y ayuda de Google
<?
function get_favicon($url){
$url = str_replace("http://",'',$url);
return "http://www.google.com/s2/favicons?domain=".$url;
}
?>
Fuente
Acortando URL's usando bit.ly
Esta es una util funcion en php que te ayudara a acortar URL's con la ayuda del API de bit.ly , con tu apikey y tu nombre de usuario simplemente tendras 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"); ?>
Fuente