Categoría: Scripts > 2

Estoy haciendo una nueva sección para el blog (ya está casi terminada), y necesitaba calcular el horóscopo Chino y el horóscopo del Zodiaco, mediante la fecha de nacimiento. Dado que no encontré en Google ningún script en PHP que lo hiciera, escribí yo uno.

Horóscopo Chino


Horóscopo del Zodiaco en PHP


En principio es bastante simple, para cada mes comprueba los dos horóscopos posibles, mirando si la fecha es antes o después de un determinado día. Seguramente hay muchas más formas de hacerlo, pero esta me pareció la más sencilla.


<?
function Zodiaco ($dia$mes) {
  switch (
$mes) {
    case 
1: if ($dia >= 21) return 'Acuario'; else return 'Capricornio';
    case 
2: if ($dia >= 20) return 'Piscis'; else return 'Acuario';
    case 
3: if ($dia >= 21) return 'Aries'; else return 'Piscis';
    case 
4: if ($dia >= 21) return 'Tauro'; else return 'Aries';
    case 
5: if ($dia >= 22) return 'G&eacute;minis'; else return 'Tauro';
    case 
6: if ($dia >= 22) return 'Cancer'; else return 'G&eacute;minis';
    case 
7: if ($dia >= 24) return 'Leo'; else return 'Cancer';
    case 
8: if ($dia >= 24) return 'Virgo'; else return 'Leo';
    case 
9: if ($dia >= 24) return 'Libra'; else return 'Virgo';
    case 
10: if ($dia >= 24) return 'Escorpio'; else return 'Libra';
    case 
11: if ($dia >= 23) return 'Sagitario'; else return 'Escorpio';
    case 
12: if ($dia >= 22) return 'Capricornio'; else return 'Sagitario';
  }
}
?>



Horóscopo Chino en PHP


El horóscopo Chino, cuyo ciclo se repite cada 12 meses, es un poco mas complicado:

  • Calculo la fracción en la que se encuentra el año.
  • Después quito la cifra entera y redondeo.
  • Entonces comparo los resultados con las fracciones, hasta que encuentre la que coincida, y devuelve el horóscopo correspondiente.

<?
function HChino ($anio) {

//0004 - Año de la rata
$fraccion = ($anio 4) / 12;

//Obteniendo los decimales
$fraccion = (round ($fraccion floor ($fraccion), 2)); 

if (
$fraccion == 0) return 'Rata';
if (
$fraccion == round (1/122)) return 'Buey';
if (
$fraccion == round (2/122)) return 'Tigre';
if (
$fraccion == round (3/122)) return 'Conejo';
if (
$fraccion == round (4/122)) return 'Dragon';
if (
$fraccion == round (5/122)) return 'Serpiente';
if (
$fraccion == round (6/122)) return 'Caballo';
if (
$fraccion == round (7/122)) return 'Cabra';
if (
$fraccion == round (8/122)) return 'Mono';
if (
$fraccion == round (9/122)) return 'Gallo';
if (
$fraccion == round (10/122)) return 'Perro';
if (
$fraccion == round (11/122)) return 'Cerdo';
}
?>

Creo que no tiene errores, todos los años que probé los calcula bien, ¿te sirvió?

Hace unos días tenía que pasar el contenido de un documento Excel a Sql, pero pasar todo eso a mano es un suicidio...

Encontré algunas librerías en SourceForge, pero el código era demasiado largo y no solucionaba mi problema fácilmente, finalmente encontré información sobre las librerías COM de Excel y elaboré un pequeño script en PHP.

Pasar Excel Sql

Se me ocurrió subirlo al blog por si alguien tenia el mismo problema, así que si necesitas pasar un archivo Excel con formato .xls, .xlsx o similar a Sql, este Script PHP podría serte útil.



Función "convertirSql"


<?php
function convertirSql ($hoja$maxFil$maxCol$tabla) {
  
$hoja->activate;

  
$consulta "INSERT INTO `$tabla` (";

  
$col 1;
  while (
$col <= $maxCol) {
    
$consulta .= '`'.utf8_encode ($hoja->Cells(1$col)).'`, ';
    
$col++;
  }
  
$consulta .= '[FIN]';
  
$consulta str_replace (', [FIN]'') VALUES'$consulta);
  
  
$fil 2;
  while (
$fil <= $maxFil) {
    
$consulta .= ' (';
           
    
$col 1;
    while (
$col <= $maxCol) {
      
$consulta .= "'".utf8_encode ($hoja->Cells($fil$col))."', ";
      
$col++;
    }
    
$consulta .= '[FIN]';
    
$consulta str_replace (', [FIN]''), '$consulta);
    
$fil++;
  }
  
$consulta .= '[FIN]';
  
$consulta str_replace (', [FIN]'';'$consulta);

  echo 
$consulta;
}
?>


Apertura de la hoja del Excel y llamada a la función


<?php
$excel 
= new COM ("Excel.sheet");
$excel->Application->DisplayAlerts false;
$abrir $excel->application->Workbooks->Open("C:/.../Libro1.xlsx");
$excel->Application->Visible 1;
$hoja $abrir->Worksheets("Hoja1");

$numFil $excel->application->ActiveSheet->UsedRange->Rows->Count;
$numCol $excel->application->ActiveSheet->UsedRange->Columns->Count;

convertirSql ($hoja$numFil$numCol'nombreTabla');
?>


El Script está hecho de tal forma, que el primer elemento de cada columna en el Excel compone el conjunto de nombres de los campos de una tabla en Sql, y el resto las filas. No obstante, si sabes PHP puedes adaptarlo a tu hoja del Excel en concreto.



Ejemplo hoja excel

Dado que el script genera una consulta en sql para insertar los datos en una tabla, habrá que crear antes la tabla en la base de datos. Para el ejemplo de la imagen anterior, la tabla sería algo como:


CREATE TABLE `alumnos` (
  `id` bigint(7) NOT NULL auto_increment,
  `nombre` char(50) NOT NULL,
  `apellidos` char(100) NOT NULL,
  `DNI` char(10) NOT NULL,
  `calificacion` char(4) NOT NULL,
  KEY `id` (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;


Para descargar el script pulsa en: Descargar

Una redirección, es la acción que se produce cuando al acceder a una página determinada, esta nos envía a otra distinta, normalmente del mismo dominio, aunque se puede hacer perfectamente hacia otro distinto.

Redireccionar pagina

¿Para qué se necesita una redirección? Para un cambio de dominio, URL borradas desde las cuales no quieres perder visitas, evitar que accedan a zonas restringidas de tu web, redireccionar temporalmente a los usuarios a una página de mantenimiento, etc.

Existen varias formas de hacerlo, dependiendo de la situación:



Redireccionar con HTML


Redireccionar una página con html o javascript, no está bien visto por los buscadores como Google, y no es para nada seguro, sin embargo puede ser util cuando no dispones de soporte PHP, ASP, o algún tipo de lenguaje del lado del servidor.


<meta http-equiv="refresh" content="10"; url="http://www.dominio.com/pagina.html" />

En content hay que poner los segundos que pasarán antes de que se redireccione la página, si pones 0 se redireccionará al instante, y en url la dirección de la página hacia la que quieres hacer la redirección.



Redireccionar con JavaScript




1. Redirección javascript


<script languaje="JavaScript">
location.href="http://www.dominio.com/pagina.html";
</script>

Para que funcione hay que ponerlo entre las etiquetas <head> y </head> .



2. Redirección javascript retardada


<script type="text/javascript">
setTimeout (window.location="http://www.dominio.com/pagina.html", 10000);
</script>

Sustituye 10000 (10 segundos) por la cantidad de milisegundos que quieres que tarde en redireccionar la página, 1 segundo corresponde a 1000 milisegundos.



Redireccionar con PHP


Redireccionar en PHP es necesario cuando se quiere redirigir una página incluso antes de cargarla. Ya que el php se ejecuta primero en el servidor, devuelve al usuario directamente la página redirigida.

Además, hay que tener en cuenta que tipo de redirección establecer, 301 indica a los buscadores un cambio permanente (Una URL que cambió de nombre), mientras que un 302 un cambio temporal (Como una redirección por mantenimiento de la web).



1. Redirección 301 en PHP


<?
header ("HTTP/1.1 301 Moved Permanently"); //Redireccion 301
header ("Location: http://www.dominio.com/pagina.php");
exit();
?>


2. Redirección 302 en PHP


header("HTTP/1.1 302 Moved Temporarily"); //Redireccion 302
header("Location: http://www.dominio.com/pagina.php");
exit();

Es importante poner la redirección justo al principio de la página, de lo contrario no funcionará.



Redireccionar con ASP


Redireccionar en ASP es muy parecido a redireccionar en PHP, solo cambia ligeramente el código.



1. Redirección 301 en ASP


<%
Response.Status = "301 Moved Permanently"
Response.AddHeader "Location", "http://www.dominio.com/pagina.asp"
Response.End
%>


2. Redirección 302 en ASP


<%
Response.Status = "302 Moved Temporarily"
Response.AddHeader "Location", "http://www.dominio.com/pagina.asp"
Response.End
%>


Redireccionar con htaccess


Una de las mejores formas de hacer una redirección, es con el archivo de configuración .htaccess. Solo hay que crear un nuevo archivo, sin extension y con el nombre ".htaccess", escribir en el las siguientes lineas, y subirlo a tu servidor.


Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_URI} /paginaVieja.php$
RewriteRule $ http://www.dominio.com/paginaNueva.php [R=301,L]

Cambiar las URL por las tuyas y poner 301 o 302, dependiendo del tipo de redirección requerida.

Si necesitas más información sobre este archivo de configuración, puedes consultar la web de Apache.

Logo youtube azul java

Realmente poner en tu web un vídeo de youtube es una tarea muy sencilla, basta con copiar y pegar el código que ellos mismo te proporcionan.

Cuesta un poco más cuando quieres que el video pase el validador W3C, hay que sustituir el código por otro y cambiar la ID del video.

Por este motivo he escrito una sencilla función en javascript que permite insertar videos de youtube de una forma fácil, con una sola línea.


Función youtube en javascript


Copia o descarga el código que aparece a continuación y pégalo en tu web, antes de la etiqueta </head> .


<script type="text/javascript">
//<![CDATA[
function youtube (ID, ancho, altura) {
ancho = ancho || 425; //Ancho Por Defecto
altura = altura || 344; //Altura Por Defecto

document.write (
"<div style="text-align: center;">" +
"<object type="application/x-shockwave-flash"" +
"data="http://www.youtube.com/v/"+ ID +""" +
"width=""+ ancho +""" +
"height=""+ altura +"">" +
"<param name="movie"" +
"value="http://www.youtube.com/v/"+ ID +"" />" +
"</object>" +
"</div>"
);
}
//]]>
</script>



Insertar vídeo de youtube en tu web


Ahora, cada vez que quieras poner un video de youtube en tu web, solo tienes que insertar el siguiente código en el lugar donde quieras ponerlo:


<script>youtube ("XXXXXXXXXXX")</script>

Por defecto, el ancho y la altura del video es de 425 y 344, si el video que quieres insertar tiene un tamaño diferente ponlo asi:


<script>youtube ("XXXXXXXXXXX", Ancho, Altura)</script>

Recuerda sustituir las XXXXXXXXXXX por la ID del video. Y Ancho y la Altura por los valores numéricos que correspondan a tu video.

Ejemplo:

Video URL: http://www.youtube.com/watch?v=X0-TbUUXDtM

En tu web:


<script>youtube ("X0-TbUUXDtM")</script>