MANUAL DE PHP

(y algo mas)windsurf pozo izquierdo
Google
search for in the  
ELMARRAJO.COM mysql bulma desarrollo web linux fedora html ayuda

windsurf mercedes camper

crc32

(PHP 4 >= 4.0.1, PHP 5)

crc32 -- Calcula el polinomio crc32 de una cadena

Descripción

int crc32 ( string cadena )

Genera el polinomio cíclico redundante de suma de verificación de 32-bits de la cadena. Este valor es usado por lo general para validar la integridad de los datos transmitidos.

Dado que el tipo entero de PHP tiene signo, y varias sumas de verificación crc32 resultarán en enteros negativos, es necesario usar el código de formato "%u" de sprintf() o printf() para obtener la representación de cadena de la suma de verificación crc32 sin signo.

Este segundo ejemplo muestro cómo imprimir una suma de verificación convertida con la función printf():

Ejemplo 1. Mostrar una suma de verificación crc32

<?php
$suma
= crc32("El veloz murcielago hindu comia feliz cardillo y kiwi.");
printf("%u\n", $suma);
?>

Vea también md5() y sha1().



add a note add a note User Contributed Notes
crc32
Tim
21-Aug-2006 10:26
What "info at b1g dot de" wrote about MD5 is not completely correct. He wrote:

"MD5 (32Byte) is more precise then CRC32 (4Byte)"

It is correct that MD5 is "more precise" than CRC32, but it does not contain 32 bytes, but 16 bytes. (SHA-1: 20 bytes)

Apart from that one cannot compare MD5 to CRC32 just by comparing its number of bits. The underlying algorithm is more important.

-Tim
roberto at spadim dot com dot br
07-Apr-2006 09:52
MODBUS RTU, CRC16,
input-> modbus rtu string
output -> 2bytes string, in correct modbus order

function crc16($string,$length=0){

   $auchCRCHi=array(    0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
               0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
               0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,
               0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
               0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81,
               0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
               0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,
               0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
               0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
               0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
               0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,
               0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
               0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
               0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
               0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,
               0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
               0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
               0x40);
   $auchCRCLo=array(    0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4,
               0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09,
               0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD,
               0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,
               0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7,
               0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A,
               0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE,
               0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,
               0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2,
               0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F,
               0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB,
               0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,
               0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91,
               0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C,
               0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88,
               0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,
               0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80,
               0x40);
   $length        =($length<=0?strlen($string):$length);
   $uchCRCHi    =0xFF;
   $uchCRCLo    =0xFF;
   $uIndex        =0;
   for ($i=0;$i<$length;$i++){
       $uIndex        =$uchCRCLo ^ ord(substr($string,$i,1));
       $uchCRCLo    =$uchCRCHi ^ $auchCRCHi[$uIndex];
       $uchCRCHi    =$auchCRCLo[$uIndex] ;
   }
   return(chr($uchCRCLo).chr($uchCRCHi));
}
administrador(ensaimada)sphoera(punt)com
17-Mar-2006 03:42
To obtain the adler32 hash from a string, you can use this simple function:
<?php
 
function adler32($buf){
  
$low = 1;
  
$high = 0;
  
$len = strlen($buf);
   for (
$n = 0; $n < $len; $n++) {
      
$low =  ($low + ord($buf[$n])) % 65521;
      
$high = ($high + $low) % 65521;
   }
  
$crc = $high * 65536 + $low;
   return
$crc;
 }
 
// and for entire files:
 
function file_adler32($filename){
     return
adler32(file_get_contents($filename));
 }
?>

more functions at http://www.sphoera.com/
info at b1g dot de
14-Feb-2006 07:12
I think nathanzadoks at yahoo dot co dot uk's function is not very good for checksums - it does not make any sense to build a md5 hash from a crc32 hash - MD5 (32Byte) is more precise then CRC32 (4Byte), so the MD5-encoding would not make sense. As PHP returns the MD5 hash in ASCII representation already, you do not need to base64-encode it, too. So a simple

md5($content)

or

sha1($content)

would be more precise and secure.
nathanzadoks at yahoo dot co dot uk
27-Jan-2006 10:54
If you want to make checksums use my checksum function
Usage: checksum($data);

<?php
function checksum($content){
   return
base64_encode(md5(crc32($content)));
}
?>
Séb.
26-Sep-2005 01:58
To have a 8 digits hexadecimal representation :

   $crc32 = sprintf('%08X', crc32($string)) ;
Bulk at bulksplace dot com
27-Aug-2005 05:46
A faster way I've found to return CRC values of larger files, is instead of using the file()/implode() method used below, is to us file_get_contents() (PHP 4 >= 4.3.0) which uses memory mapping techniques if supported by your OS to enhance performance. Here's my example function:

<?
// $file is the path to the file you want to check.
function file_crc($file)
{
  
$file_string = file_get_contents($file);

  
$crc = crc32($file_string);
  
   return
sprintf("%u", $crc);
}

$file_to_crc = /home/path/to/file.jpg;

echo
file_crc($file_to_crc); // Outputs CRC value for given file.
?>

I've found in testing this method is MUCH faster for larger binary files.
schmeic-php at lovo dot org
07-Jul-2005 01:26
I think that Mario's (spectrumizer at cycos dot net) CRC16 algorithm might be wrong.  At least according to these two online calculators:

http://www.zorc.breitbandkatze.de/crc.html
http://www.lammertbies.nl/comm/info/crc-calculation.html

  However, it seems that there can be some confusion concerning "official" CRC16 algorithms.  See this article for two possible CRC16-CCITT algorithms:

http://www.joegeluso.com/software/articles/ccitt.htm

  Here is a php implementation of the "bad" CRC16-CCITT algorithm from the article.  The "bad" implementation might not match the "official" algorithm, but is widely used, including by the two crc calculators mentioned above.

  Note that crc16-CCITT is also referred to as crc16c.

<?php

// this function is used to calculate the (common) crc16c for an entire buffer
function calculate_common_crc16c($buffer)
{
  
$crc16c = 0xffff// the crc initial value

  
$buffer_length = strlen($buffer);

   for (
$i = 0; $i < $buffer_length; $i++)
   {
      
$ch = ord($buffer[$i]);

      
$crc16c = update_common_crc16c($ch, $crc16c);
   }

   return
$crc16c;
}

// this function is used to calculate the (common) crc16c byte by byte
// $ch is the next byte and $crc16c is the result from the last call, or 0xffff initially
function update_common_crc16c($ch, $crc16c)
{
   global
$crc16c_polynomial;

  
// This comment was in the code from
   // http://www.joegeluso.com/software/articles/ccitt.htm

   // Why are they shifting this byte left by 8 bits??
   // How do the low bits of the poly ever see it?
  
$ch <<= 8;

   for(
$i = 0; $i < 8; $i++)
   {
       if ((
$crc16c ^ $ch) & 0x8000)
       {
          
$xor_flag = true;
       }
       else
       {
          
$xor_flag = false;
       }

      
$crc16c = $crc16c << 1;

       if (
$xor_flag)
       {
          
$crc16c = $crc16c ^ $crc16c_polynomial;
       }

      
$ch = $ch << 1;
   }

  
// mask off (zero out) the upper two bytes
  
$crc16c = $crc16c & 0x0000ffff;

   return
$crc16c;
}

?>
Johan
13-May-2005 03:12
Here is a php version of the Java String hashCode:
( produced for: http://openmusic.op.funpic.org/catalog/ )

/**
 * Calculate hash code for a string computed as
 * s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
 * Equal to java.lang.String.hashCode()
 *
 * Returns an integer.
 */
function toID($link) {
   $link = (string)$link;
   $len = strLen($link);
   $sum = 0;
   for ($i = 0; $i < $len; $i++) {
       $sum = (int)(31 * $sum + getASCIICode($link[$i]));
       // echo($sum . "<br>");
   }

   return ((int)$sum);
}

// get char as int, - see example codes at intval on the subject.
function getASCIICode($caracter) {
// ...
}
gribber (_at) hellburner (dot_) net
18-May-2004 02:41
A little correction to the sfv checksum code above, this was confuseing me for a while, heading zeros was striped away.

<?php
function sfv_checksum ($filename) {
   return
str_pad (strtoupper (dechex (crc32 (file_get_contents ($filename)))), 8, '0', STR_PAD_LEFT);
}
?>
waldomonster at netjukebox dot demon dot nl
23-Apr-2004 08:48
<?php
$data
= 'dot';
echo
dechex(crc32($data));
?>

Returns 59278a3
Witch is missing a leading zero.

<?php
$data
= 'dot';
echo
str_pad(dechex(crc32($data)), 8, '0', STR_PAD_LEFT);
?>

Returns the correct string: 059278a3
arachnid at notdot dot net
13-Apr-2004 08:44
Note that the CRC32 algorithm should NOT be used for cryptographic purposes, or in situations where a hostile/untrusted user is involved, as it is far too easy to generate a hash collision for CRC32 (two different binary strings that have the same CRC32 hash). Instead consider SHA-1 or MD5.
same
01-Feb-2004 05:27
bit by bit crc32 computation

<?php

function bitbybit_crc32($str,$first_call=false){

  
//reflection in 32 bits of crc32 polynomial 0x04C11DB7
  
$poly_reflected=0xEDB88320;

  
//=0xFFFFFFFF; //keep track of register value after each call
  
static $reg=0xFFFFFFFF;

  
//initialize register on first call
  
if($first_call) $reg=0xFFFFFFFF;
  
  
$n=strlen($str);
  
$zeros=$n<4 ? $n : 4;

  
//xor first $zeros=min(4,strlen($str)) bytes into the register
  
for($i=0;$i<$zeros;$i++)
      
$reg^=ord($str{$i})<<$i*8;

  
//now for the rest of the string
  
for($i=4;$i<$n;$i++){
      
$next_char=ord($str{$i});
       for(
$j=0;$j<8;$j++)
          
$reg=(($reg>>1&0x7FFFFFFF)|($next_char>>$j&1)<<0x1F)
               ^(
$reg&1)*$poly_reflected;
   }

  
//put in enough zeros at the end
  
for($i=0;$i<$zeros*8;$i++)
      
$reg=($reg>>1&0x7FFFFFFF)^($reg&1)*$poly_reflected;

  
//xor the register with 0xFFFFFFFF
  
return ~$reg;
}

$str="123456789"; //whatever
$blocksize=4; //whatever

for($i=0;$i<strlen($str);$i+=$blocksize) $crc=bitbybit_crc32(substr($str,$i,$blocksize),!$i);

?>
sandeep_k_ghosh at hotmail dot com
15-Oct-2003 10:08
This function returns the unsigned crc32 value. I realized it's not very obvious from the current documentation.

<?php
/**
 * Function to compute the unsigned crc32 value.
 * PHP crc32 function returns int which is signed, so in order to get the correct crc32 value
 * we need to convert it to unsigned value.
 *
 * @param $str - String to compute the unsigned crc32 value.
 * @return $var - Unsinged inter value.
 */
function computeUnsignedCRC32($str){
  
sscanf(crc32($str), "%u", $var);
   return
$var;
}
?>
xethmir at yournextclient dot com
16-Jul-2003 07:12
This is a really simple way of displaying the crc-32 hexadecimal code/checksum for a file... (absolute paths are more reliable)

<?
$file
= "http://foo.net/bar.jpg";

// Read the file into an array
$data = file($file);

// Join the array into a string
$data = implode('', $data);

// Calculate the crc
$crc = crc32($data);

//convert from decimal to hexadecimal
$crchex=DecHex($crc*1);

//echo the result
echo "$crchex";
?>
sergi34 at megacceso dot com
10-Jun-2003 03:27
If you want to display a crc checksum correctly, you need to format it to unsigned because PHP int type is signed.

example:

<?php
$crc
= crc32("String where we calculate the checksum");
printf("%u", $crc);
?>
quix at free dot fr
05-May-2003 01:19
I needed the crc32 of a file that was pretty large, so I didn't want to read it into memory.
So I made this:

<?php
   $GLOBALS
['__crc32_table']=array();        // Lookup table array
  
__crc32_init_table();

   function
__crc32_init_table() {            // Builds lookup table array
       // This is the official polynomial used by
       // CRC-32 in PKZip, WinZip and Ethernet.
      
$polynomial = 0x04c11db7;

      
// 256 values representing ASCII character codes.
      
for($i=0;$i <= 0xFF;++$i) {
          
$GLOBALS['__crc32_table'][$i]=(__crc32_reflect($i,8) << 24);
           for(
$j=0;$j < 8;++$j) {
              
$GLOBALS['__crc32_table'][$i]=(($GLOBALS['__crc32_table'][$i] << 1) ^
                   ((
$GLOBALS['__crc32_table'][$i] & (1 << 31))?$polynomial:0));
           }
          
$GLOBALS['__crc32_table'][$i] = __crc32_reflect($GLOBALS['__crc32_table'][$i], 32);
       }
   }

   function
__crc32_reflect($ref, $ch) {        // Reflects CRC bits in the lookup table
      
$value=0;
      
      
// Swap bit 0 for bit 7, bit 1 for bit 6, etc.
      
for($i=1;$i<($ch+1);++$i) {
           if(
$ref & 1) $value |= (1 << ($ch-$i));
          
$ref = (($ref >> 1) & 0x7fffffff);
       }
       return
$value;
   }

   function
__crc32_string($text) {        // Creates a CRC from a text string
       // Once the lookup table has been filled in by the two functions above,
       // this function creates all CRCs using only the lookup table.

       // You need unsigned variables because negative values
       // introduce high bits where zero bits are required.
       // PHP doesn't have unsigned integers:
       // I've solved this problem by doing a '&' after a '>>'.

       // Start out with all bits set high.
      
$crc=0xffffffff;
      
$len=strlen($text);

      
// Perform the algorithm on each character in the string,
       // using the lookup table values.
      
for($i=0;$i < $len;++$i) {
          
$crc=(($crc >> 8) & 0x00ffffff) ^ $GLOBALS['__crc32_table'][($crc & 0xFF) ^ ord($text{$i})];
       }
      
      
// Exclusive OR the result with the beginning value.
      
return $crc ^ 0xffffffff;
   }
  
   function
__crc32_file($name) {            // Creates a CRC from a file
       // Info: look at __crc32_string

       // Start out with all bits set high.
      
$crc=0xffffffff;

       if((
$fp=fopen($name,'rb'))===false) return false;

      
// Perform the algorithm on each character in file
      
for(;;) {
          
$i=@fread($fp,1);
           if(
strlen($i)==0) break;
          
$crc=(($crc >> 8) & 0x00ffffff) ^ $GLOBALS['__crc32_table'][($crc & 0xFF) ^ ord($i)];
       }
      
       @
fclose($fp);
      
      
// Exclusive OR the result with the beginning value.
      
return $crc ^ 0xffffffff;
   }
?>
lander at liebe dot nu
20-Apr-2003 07:22
A simple and quite fast (10ms/Mb) way to generate checksums used with the popular SFV (Simple File Verification) format. strtoupper() isn't really needed, but the output looks better this way ;)

<?php
function generate_sfv_checksum($filename) {
 $sfv_checksum = strtoupper(dechex(crc32(file_get_contents($filename))));
 return $sfv_checksum;
}
?>
spectrumizer at cycos dot net
29-Dec-2002 03:30
Here is a tested and working CRC16-Algorithm:

<?php
function crc16($string) {
 
$crc = 0xFFFF;
  for (
$x = 0; $x < strlen ($string); $x++) {
  
$crc = $crc ^ ord($string[$x]);
   for (
$y = 0; $y < 8; $y++) {
     if ((
$crc & 0x0001) == 0x0001) {
      
$crc = (($crc >> 1) ^ 0xA001);
     } else {
$crc = $crc >> 1; }
   }
  }
  return
$crc;
}
?>

Regards,
Mario

Citas célebres

Quien nos hace reír es un cómico. Quien nos hace pensar y luego reír es un humorista.

George P. Burns
Humosrista estadounidense
(1896-1996)
Citas en tu mail
©Contenidos Gratis

Ilusiones Opticas
ilusion_optica_067.jpg
Contenidos Web

Chiste de... Transportes
Avión de carga

- ¿Este avión es de carga o de pasajeros?

- De carga.

- ¿Y qué carga?

- Pasajeros.
Chistes en tu mail
©ContenidosGratis

Humor Gráfico
humor_grafico_025.jpg
Contenidos Web

Inicio | Acción | Estrategia | Palabras | Puzzles | Solitarios | Foro Trucos
Cake ManiaCake Mania
Jugadores: 6835
Categoría del juego: Acción
Objetivo del juego: Ayuda a Jill a recuperar la pastelería de su abuela llevando su propia pastelería; consigue clientes y gana dinero.
Rainbow WebRainbow Web
Jugadores: 2199
Categoría del juego: Puzzles
Objetivo del juego: Rompe un pegajoso hechizo y salva un reino de fantasía en Rainbow Web. Tendrás toneladas de diversión mientras juegas a este mágico desafío para la mente.
Mahjongg FortunaMahjongg Fortuna
Jugadores: 12462
Categoría del juego: Solitarios
Objetivo del juego: Velocidad y habilidad mental son las armas más importantes en esta versión de un antiguo juego asiático. Despeja el tablero lo antes posible haciendo clic en las fichas iguales y gánate la fama eterna de la puntuación más alta.
Chainz 2Chainz 2
Jugadores: 6955
Categoría del juego: Puzzles
Objetivo del juego: Entra en el mundo de las combinaciones con Chainz 2: Relinked, emocionante secuela del exitazo del año pasado, Chainz. Gira eslabones y crea combinaciones de 3 ó más.
DeliciousDelicious
Jugadores: 4405
Categoría del juego: Acción
Objetivo del juego: ¿Eres un as de la multitarea? ¿Quieres que tus clientes estén contentos? ¡Pues Delicious es tu juego! Sacia el apetito de los clientes y tenlos contentos; ¡no te arriesgues!
BookwormBookworm
Jugadores: 4568
Categoría del juego: Palabras
Objetivo del juego: Junta las letras para formar palabras. ¡Las palabras más largas valen más puntos!
ZumaZuma
Jugadores: 4976
Categoría del juego: Acción
Objetivo del juego: Controla el ídolo de la rana de piedra de los antiguos Zuma en este intrigante enigma de acción. ¡Dispara bolas para formar conjuntos de tres, pero si dejas que lleguen a la calavera dorada morirás!
Jewel of AtlantisJewel of Atlantis
Jugadores: 3798
Categoría del juego: Puzzles
Objetivo del juego: Descubre la ciudad hundida de la Atlántida y busca valiosos tesoros. Viaja más allá de las profundidades del mar y vive trepidantes aventuras en Jewel of Atlantis.
Jewel QuestJewel Quest
Jugadores: 3727
Categoría del juego: Puzzles
Objetivo del juego: Convierte la arena de la antigua selva en oro tan rápido como puedas juntando grupos de 3 elementos. ¡Los grupos más grandes valen más puntos!
Bejeweled 2Bejeweled 2
Jugadores: 3659
Categoría del juego: Puzzles
Objetivo del juego: Con cuatro modos de juego únicos y fascinantes, nuevas piezas de juego explosivas e imponentes fondos planetarios, Bejeweled 2 es mucho más adictivo que nunca.
Contenidos gratis en tu webSiguiente >>

Fotos divertidas
fotos_increibles_0032.jpg
Contenidos Web
microrobots avion deportes riesgo recetas cocina canaria juegos online gratis moto motociclismo horoscopos naranjas valencianas surf canarias montañismo ciudades turismo postales gratis library Horoscopos Diarios Windsurf Canarias
fregadero microondas placa electrica bañopreparar camper pantalla plananevera compresor electricacamper fiat ducato camper baño quimicomampara enrollable bañocamper aire climatizadofurgoneta surf windsurffurgoneta surf windsurftelevisor furgonetas camperfurgonetas camper cama

Sudoku del día
Nivel de dificultad: Fácil



Cómo jugar:
El juego consiste en colocar los números del 1 al nueve de tal forma que no se repita el mismo número en la columna, fila y caja (bloques 3x3 enmarcados).

©Contenidos Gratis | Sudoku en tu mail

Warning: array_rand(): First argument has to be an array in /var/www/html/contenidos/efemerides.php on line 14
Sucedió el...

31 de agosto de

Efemérides en tu mail
©Contenidos Gratis
windsurf canarias youtube porno canarias baleares valencia madrid fallera mayor campus party alcacer feria valencia fernando alonso loterias dinero inversiones violencia de genero makro empresas cartera soledad tolerancia metro valencia gobierno de españa violencia de genero UIMP navidad