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

glob

(PHP 4 >= 4.3.0, PHP 5)

glob -- Encontrar nombres de ruta coincidentes con un patrón

Descripción

array glob ( string patrón [, int banderas] )

La función glob() realiza una búsqueda por todos los nombres de ruta que coincidan con patrón de acuerdo a las reglas usadas por la función glob() de la biblioteca de C, las cuales son muy similares a las reglas usadas por intérpretes de comandos comunes. No se realiza expansión de tildes o parámetros.

Devuelve una matriz que contiene los archivos/directorios coincidentes, o FALSE si ocurre un error.

Banderas válidas:

  • GLOB_MARK - Agrega una barra a cada elemento devuelto

  • GLOB_NOSORT - Devuelve los archivos como aparecen en el directorio (sin ordenar)

  • GLOB_NOCHECK - Devuelve el patrón de búsqueda si no se han encontrado archivos coincidentes

  • GLOB_NOESCAPE - Las barras invertidas no indican metacaracteres

  • GLOB_BRACE - Expande {a,b,c} para que coincida con 'a', 'b', o 'c'

  • GLOB_ONLYDIR - Devuelve únicamente entradas de directorios que coinciden con el patrón

    Nota: Antes de PHP 4.3.3 GLOB_ONLYDIR no estaba disponible en windows y otros sistemas que no usan la biblioteca de C GNU.

  • GLOB_ERR - Detenerse en errores de lectura (como directorios inaccesibles), los errores son ignorados por omisión

    Nota: GLOB_ERR fue agregada en PHP 5.1

Ejemplo 1. Modo conveniente de reemplazar opendir() y amigos con glob().

<?php
foreach (glob("*.txt") as $nombre_archivo) {
   echo
"$nombre_archivo tam " . filesize($nombre_archivo) . "\n";
}
?>

La salida se verá algo como:

funclist.txt size 44686
funcsummary.txt size 267625
quickref.txt size 137820

Nota: Esta funcion no funcionara con ficheros remotos ya que el fichero a examinar tiene que estar disponible desde el sistema de ficheros del servidor.

Vea también opendir(), readdir(), closedir(), y fnmatch().



add a note add a note User Contributed Notes
glob
joseph dot morphy at gmail dot com
16-Aug-2006 11:01
<?php
$html_array
= glob("*.html");

function
sort_by_mtime($file1,$file2) {
  
$time1 = filemtime($file1);
  
$time2 = filemtime($file2);
   if (
$time1 == $time2) {
       return
0;
   }
   return (
$time1 < $time2) ? 1 : -1;
   }

usort($html_array,"sort_by_mtime");
//$html_array is now ordered by the time it was last modified
?>
redcube at gmx dot de
14-Aug-2006 02:22
The answer for the difference in the dirsize function of "management at twilightus dot net":

glob('*') ignores all 'hidden' files by default. This means it does not return files that start with a dot (e.g. ".file").
If you want to match those files too, you can use "{,.}*" as the pattern with the GLOB_BRACE flag.

<?php
// Search for all files that match .* or *
$files = glob('{,.}*', GLOB_BRACE);
?>

Note: This also returns the directory special entries . and ..
management at twilightus dot net
10-Aug-2006 12:40
I was making a directory filesize function but found there's a slight difference between glob and readdir in terms of getting sizes.

<?php
function dirsize_glob($dir)
{
  
$size = 0;
  
$dir .= (!ereg('/$', $dir)) ? '/' : '';

   foreach (
glob($dir . '*') as $file)
   {
      
$size += (is_dir($file)) ? dirsize_glob($file) : filesize($file);
   }

   return
$size;
}

function
dirsize_readdir($dir)
{
  
$size = 0;
  
$dir .= (!ereg('/$', $dir)) ? '/' : '';

  
$handle = opendir($dir);
   while ((
$file = readdir($handle)) !== FALSE)
   {
       if (!
ereg('^\.{1,2}$', $file))
       {
          
$size += (is_dir($dir . $file)) ? dirsize_readdir($dir . $file) : filesize($dir . $file);
       }
   }
  
closedir($handle);

   return
$size;
}
?>

For a directory that's 529216 bytes, readdir correctly gives 529216 while glob gives 528996, a difference of 220 bytes. Anyone know why there's such a difference?
okumurya at hotmail dot com
19-Jul-2006 02:25
4.3.8 and 4.4.2 has incompatible behavior.
If there is no glob result, 4.4.2 return empty array but 4.3.8 returns FALSE.

code:
<?php
$a
= glob('hoge');
var_dump($a);
?>

result at 4.3.8:
 bool(false)

result at 4.4.2:
 array(0) {
 }
c_windows_temp at hotmail dot com
06-Jun-2006 04:53
Note that this function does not list broken symbolic links.
ny_obaATgmxDOTnet
03-Apr-2006 08:51
Case insensitive version of this function for mswin:

// only supported flags are GLOB_NOSORT | GLOB_ONLYDIR
function iglob($pattern, $flags)
{
  $path = preg_split(
     '#(?<=\A|[\\\\/])((?>[^\\\\/*?]*)[*?](?>[^\\\\/]*))(?=\Z|[\\\\/])#',
     $pattern, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY
   );

  foreach ($path as &$n)
   if (preg_match('/[*?]/', $n))
   {
     $re = '';
     for ($i = 0, $l = strlen($n); $i < $l; $i++)
       switch($n{$i})
       {
         case '*': $re .= '.*'; break;
         case '?': $re .= '.'; break;
         default: $re .= sprintf('\x%02x', ord($n{$i}));
       }
     $n = array(0, "/^$re$/i");
   }
   else
     $n = array(1, $n);

  $res = array();
  iglob_DFS($path, $flags, '', 0, $res);
  if (!($flags & GLOB_NOSORT))
   sort($res);

  return $res;
}

function iglob_DFS($path, $flags, $parent, $lvl, &$res)
{
  $depth = count($path) - 1;

  if (($lvl < $depth) && $path[$lvl][0])
   $parent .= $path[$lvl++][1];

  $files = array();
  if ($path[$lvl][0])
   $files[] = $path[$lvl][1];
  else
   if ($d = @opendir(($parent == '') ? '.' : $parent))
   {
     while (($n = readdir($d)) !== false)
       if ($n != '.' && $n != '..')
         $files[] = $n;
     closedir($d);
   }

  foreach ($files as $f)
   if ($path[$lvl][0] || preg_match($path[$lvl][1], $f))
   {
     $fullpath = $parent.$f;
     if ($lvl == $depth)
     {
       if (!($flags & GLOB_ONLYDIR) || is_dir($fullpath))
         $res[] = $fullpath;
     }
     else
       iglob_DFS($path, $flags, $fullpath, $lvl + 1, $res);
   }
}
edogs [at] dogsempire.com
03-Mar-2006 05:34
funny enough, but our testing opendir VS glob

show advantage of opendir by speed

0.00115704536438
and
0.0068039894104

or if to pass 200 times
0.210277080536
vs
1.2976038456
info at urbits dot com
06-Jan-2006 04:26
I have been working towards a CMS-type design that is both modular and quite flat. For example, included files are all one level below the installation folder.

glob() just help me get rid of a lot of opendir() hassle. I wasn't sure if the double asterix would work - but it's fine:

foreach (glob(SERVER_PATH."/*/includes/*.php") as $inc) {
   require($inc);
}
admiral [at] nuclearpixel [dot] com
23-Nov-2005 08:38
I've written a function that I've been using quite a lot over the past year or so. I've built whole websites and their file based CMSs based on this one function, mostly because (I think) databases are not as portable as groups of files and folders. In previous versions, I used opendir and readdir to get contents, but now I can do in one line what used to take several. How? Most of the work in the whole script is done by calling

glob("$dir/*")

Giving me an array containing the names of the items in the folder, minus the ones beginning with '.', as well as the ones I specify.

<?php

/* alpharead version 3: This function returns an array containing the names of the files inside any given folder, excluding files that start with a '.', as well as the filenames listed in the '$killit' array. This array is sorted using the 'natural alphabetical' sorting manner. If no input is given to the function, it lists items in the script's interpreted folder. Version 3 fixes a MAJOR bug in version 2 which corrupted certain arrays with greater than 5 keys and one of the supposedly removed filenames.
written by Admiral at NuclearPixel.com */

function alpharead3($dir){
if(!
$dir){$dir = '.';}
foreach(
glob("$dir/*") as $item){$sort[]= end(explode('/',$item));}

$killit = array('index.html', 'http://indices.com.es/index.html', 'thumbs.db', 'styles.css');
$killcounter = 0;
foreach(
$sort as $sorteditem){
foreach(
$killit as $killcheck){
if(
strtolower($sorteditem) == strtolower($killcheck))
{unset(
$sort[$killcounter]);}
}
$killcounter++;}
if(
$sort){natsort($sort);}
foreach(
$sort as $item){$return[]= $item;}

if(!
$return){return array();}
return
$return;
}

//some basic usage

$folder = 'images';
foreach(
alpharead3($folder) as $item)
{
echo
'<img src="'.$folder.'/'.$item.'"><br>'.$item."\n";
}

?>

Commens on this function are welcome!
27-Oct-2005 12:27
in the example below, i found i got an error if the directory was empty or the directory do not exists.

<?php
foreach (glob("*.txt") as $filename) {
   echo
"$filename size " . filesize($filename) . "\n";
}
?>

My solution has:
$arrayFiles=glob('c:\text\*.*');
if($arrayFiles){
  foreach ($arrayFiles as $filename) {
   echo "$filename size <br>";
  }
}
else
  echo"File not found."
Jacob Eisenberg
05-Oct-2005 10:55
Note that on Windows, glob distinguishes between uppercase and lowercase extensions, so if the directory contains a file "test.txt" and you glob for "*.TXT" then the file will not be found!
That bug only happens when you use patterns containing "*", like the example above. If you for example search for the full filename "test.TXT" then everything works correctly.
DMan
28-Aug-2005 12:59
Whilst on Windows, a path starting with a slash resolves OK for most file functions - but NOT glob.
If the server is LAUNCHED (or chdir()ed) to W:, then
file_exists("/temp/test.txt")
returns true for the file "W:/temp/test.txt".
But glob("/temp/*.txt") FAILS to find it!

A solution (if you want to avoid getting drive letters into your code) is to chdir() first, then just look for the file.
<?php
$glob
="/temp/*.txt";
chdir(dirname($glob));
// getcwd() is now actually "W:\temp" or whatever

foreach (glob(basename($glob)) as $filename) {
  
$filepath = dirname($glob)."/".$filename; // must re-attach full path
  
echo "$filepath size " . filesize($filepath) . "\n";
}
?>

Note also, glob() IS case sensitive although most other file funcs on Windows are not.
x_terminat_or_3 at yahoo dot country:fr
06-Jul-2005 03:36
This is a replacement for glob on servers that are running a php version < 4.3

It supports * and ? jokers, and stacking of parameters with ; 

So you can do

<? $results=glob('/home/user/*.txt;*.doc') ?>

And it will return an array of matched files. 

As is the behaviour of the built-in glob function, this one will also return boolean false if no matches are found, and will use the current working directory if none is specified.

<?php
if(!(function_exists('glob')))
{function
glob($pattern)
 {
#get pathname (everything up until the last / or \)
 
$path=$output=null;
  if(
PHP_OS=='WIN32')
  
$slash='\\';
  else
  
$slash='/';
 
$lastpos=strrpos($pattern,$slash);
  if(!(
$lastpos===false))
  {
$path=substr($pattern,0,-$lastpos-1); #negative length means take from the right
  
$pattern=substr($pattern,$lastpos);
  }
  else
  {
#no dir info, use current dir
  
$path=getcwd();
  }
 
$handle=@ opendir($path);
  if(
$handle===false)
   return
false;
  while(
$dir=readdir($handle))
  {if(
pattern_match($pattern,$dir))
  
$output[]=$dir;
  }
 
closedir($handle);
  if(
is_array($output))
   return
$output;
  return
false;
 }

 function
pattern_match($pattern,$string)
 {
#basically prepare a regular expression
 
$out=null;
 
$chunks=explode(';',$pattern);
  foreach(
$chunks as $pattern)
  {
$escape=array('$','^','.','{','}',
                
'(',')','[',']','|');
   while(
strpos($pattern,'**')!==false)
  
$pattern=str_replace('**','*',$pattern);
   foreach(
$escape as $probe)
  
$pattern=str_replace($probe,"\\$probe",$pattern);
  
$pattern=str_replace('?*','*',
            
str_replace('*?','*',
            
str_replace('*',".*",
              
str_replace('?','.{1,1}',$pattern))));
  
$out[]=$pattern;
  }
  if(
count($out)==1)
   return(
eregi("^$out[0]$",$string));
  else
   foreach(
$out as $tester)
   if(
eregi("^$tester$",$string))
     return
true;
   return
false;
 }
}
?>

This function is case insensitive, but if needed, you can do this to make it behave depending on os:

* replace eregi in the example with my_regexp

add this function
<?php
function my_regexp($pattern,$probe)
{
$sensitive=(PHP_OS!='WIN32');
 
$sensitive=false;
 return (
$sensitive?
    
ereg($pattern,$probe):
    
eregi($pattern,$probe));
}
?>
mjs15451 at hotmail dot com
17-Jun-2005 03:03
In regards to the comments made by: NOSPAM sketch at infinite dot net dot au, he is wrong about Unix/Linux (I can't speak for Windows).  I am running PHP 5.0.4 and I ran a bunch of different tests on relative and absolute paths using the glob function and they all work on Unix/Linux.  I also tested glob on empty directories and patterns which don't match any files (even directories or files which don't exist) and it __always__ returns an empty array.  I couldn't get the glob function to return false so it looks like it always returns an array.
Michael T. McGrew
16-May-2005 07:12
Take all file names in the directory and put them in a link.
<?php
foreach (glob("*.*") as $filename)
{
   echo
"<a href=\"".$filename."\">".$filename."</a><br/>";
}
?>
cgamedude at yahoo dot com
05-May-2005 03:38
Here is the *correct* way to do a reverse-alphabetical search:
<?
$Results
= glob( 'blah.*' );
rsort( $Results );
?>
There now, wasn't that easy? :)
Deviant
04-Apr-2005 04:53
A slight edit on the globr() function stated by sthomas. This does exactly the same just works on windows systems for < PHP 4.3.3. :

<?php

function globr($sDir, $sPattern, $nFlags = NULL) {
  
$aFiles = glob("$sDir/$sPattern", $nFlags);
  
$files = getDir($sDir);
   if (
is_array($files)) {
       foreach(
$files as $file ) {
          
$aSubFiles = globr($file, $sPattern, $nFlags);
          
$aFiles = array_merge($aFiles,$aSubFiles);
       }
   }
   return
$aFiles;
}

function
getDir($sDir) {
  
$i=0;
   if(
is_dir($sDir)) {
       if(
$rContents = opendir($sDir)) {
           while(
$sNode = readdir($rContents)) {
               if(
is_dir($sDir.'/'.$sNode )) {
                   if(
$sNode !="." && $sNode !="..") {
                      
$aDirs[$i] = $sDir.'/'.$sNode ;
                      
$i++;
                   }
               }
           }
       }
   }
   return
$aDirs;
}

?>
cjcommunications at gmail dot com
01-Apr-2005 05:02
Here is a way I used glob() to browse a directory, pull the file name out, resort according to the most recent date and format it using date(). I called the function inside a <select> and had it go directly to the PDF file:

function browsepdf(){
   $pdffile=glob("printable/*.pdf");
   rsort($pdffile);
   foreach($pdffile as $filename){
       $filename=ltrim($filename, "printable/");
       $filename=rtrim($filename, ".pdf");
       $file=$filename;
       $datetime=strtotime($filename);
       $newdate=strtotime("+3 days",$datetime);
       $filenamedate=date("F d", $datetime);
       $filenamedate.=" - ".date("F d, Y", $newdate);
       echo "<option value='$file'>$filenamedate</option>";
   }
}
fraggy(AT)chello.nl
23-Mar-2005 03:23
glob caused me some real pain in the buttom on windows, because of the DOS thing with paths (backslashes instead of slashes)...

This was my own fault because I "forgot" that the backslash, when used in strings, needs to be escaped, but well, it can cause a lot of confusion, even for people who are not exactly newbies anymore...

For some reason, I didn't have this problem with other file operations (chdir, opendir, etc...), which was the most confusing of all...

So, for people running scripts on Windows machines (Dos95, 98 or WinNT or DosXP), just remember this:

glob('c:\temp\*.*'); // works correctly, returns an array with files.
glob("c:\temp\*.*"); // does NOT work... the backslashes need to be escaped...
glob("c:\\temp\\*.*"); // that works again...

This is especially confusing when temporary writable directories are returned as an unescaped string.

$tempdir = getenv('TEMP');
// this returns "C:\DOCUME~1\user\LOCALS~1\Temp"
so in order to scan that directoy I need to do:

glob($tempdir . "\\*.*");

Or perhaps it's easier to replace all backslashes with slashes in order to avoid these kinds of confusions...

glob("c:/temp/*.*"); // works fine too...

I know I'm not contributing anything new here, but I just hope this post may avoid some unnecessary headaches...
NOSPAM sketch at infinite dot net dot au
14-Mar-2005 05:05
in the example below, i found i got an error if the directory was empty.

<?php
foreach (glob("*.txt") as $filename) {
   echo
"$filename size " . filesize($filename) . "\n";
}
?>

I think its because glob()'ing an empty directory returns false, and so calling foreach (false as $value) will obviously break.

to fix this, i did the following:
<?php
$files
= glob("*.txt) or array(); // give it an empty array if the directory is empty or glob fails otherwise
   echo "
$filename size " . filesize($filename) . "n";
}
?>

Hope this helps someone
29-Jan-2005 02:09
Be aware...

On Windows you need to add "/" mark:
<?php
$files
= glob("/dir/*.txt"); // Works properly.
$files = glob("dir/*.txt"); // Failure!, first letter is missing on every filename!
?>

On Unix you cant add the "/" mark:
<?php
$files
= glob("dir/*.txt"); // Works properly.
$files = glob("/dir/*.txt"); // No files found!
?>

Hope this will save your time :)
23-Jan-2005 01:54
The example on this page will generate a warning if the glob function does not find any filenames that match the pattern.

The glob function result will only be an array if it finds some files and the foreach statement requires its argument to be an array.

By checking for the possibility that the result of the glob function may not be an array you can eliminate the warning.

Here's a better example:

<?php
$matches
= glob("*.txt");
if (
is_array ( $matches ) ) {
   foreach (
$matches as $filename) {
      echo "$filename size " . filesize($filename) . "\n";
   }
}
?>
Paul Gregg / Qube #efnet
30-Mar-2004 05:52
Just threw this together in response to a common question in irc:

Available at: http://www.pgregg.com/projects/
http://www.pgregg.com/projects/php/code/preg_find.phps

preg_find() - A function to search in a directory for files or directories matching a preg_ pattern.  Tell it the pattern, the start directory and some optional flags and it will return an array of files and their associated stat() details.  If you just want the filenames, just do an array_keys() on the result.

e.g. $files = preg_find("/\.php$/", '.', PREG_FIND_RECURSIVE);
will find all files ending in .php in the current directory and below.

Options are:
// PREG_FIND_RECURSIVE  - go into subdirectorys looking for more files
// PREG_FIND_DIRMATCH  - return directorys that match the pattern also
// PREG_FIND_FULLPATH  - search for the pattern in the full path (dir+file)
// PREG_FIND_NEGATE    - return files that don't match the pattern
// to use more than one simple seperate them with a | character

Hope you find it useful.

Paul.
Per Lundberg
25-Nov-2003 07:57
Be aware that on UNIX, * as the pattern will *not* match dot-files and dot-directories.  Knowing this will save you some headache.  :-)  May He bless you.
MichaelSoft
06-Nov-2003 03:28
Note that, in some configurations, the search is case-sensitive! You'll need to have something like:

<?php
$images
= glob("/path/to/images/{*.jpg,*.JPG}", GLOB_BRACE);
?>

Also on some servers, I have seen such scripts 'crash' with an CGI Error ("...not returning a complete set of HTTP headers...") when glob could not find any match!
ryan at wonko dot com
29-Oct-2003 11:03
Here's an example of how to use the GLOB_BRACE flag:

<?php
$images
= glob("/path/to/images/{*.gif,*.jpg,*.png}", GLOB_BRACE);
?>

It's also worth noting that when using the GLOB_BRACE flag in any version of PHP prior to 4.3.4, PHP will crash if no matches are found.
sthomas at townnews dot com
11-Mar-2003 03:41
<?php
/**
 * Recursive version of glob
 *
 * @return array containing all pattern-matched files.
 *
 * @param string $sDir      Directory to start with.
 * @param string $sPattern  Pattern to glob for.
 * @param int $nFlags      Flags sent to glob.
 */
function globr($sDir, $sPattern, $nFlags = NULL)
{
 
$sDir = escapeshellcmd($sDir);

 
// Get the list of all matching files currently in the
  // directory.

 
$aFiles = glob("$sDir/$sPattern", $nFlags);

 
// Then get a list of all directories in this directory, and
  // run ourselves on the resulting array.  This is the
  // recursion step, which will not execute if there are no
  // directories.

 
foreach (glob("$sDir/*", GLOB_ONLYDIR) as $sSubDir)
  {
  
$aSubFiles = rglob($sSubDir, $sPattern, $nFlags);
  
$aFiles = array_merge($aFiles, $aSubFiles);
  }

 
// The array we return contains the files we found, and the
  // files all of our children found.

 
return $aFiles;
}

?>
martin dot rode at zeroscale dot com
19-Feb-2003 11:37
If you don't have PHP >= 4.3 available and don't want to hassle with PHP (:-) do something like this on GNU/Linux:

<?php
foreach (explode("\n",`find -type d -maxdepth 1 ! -name ".*" -printf "%f\n" `) as $dirname) {
   print
$dirname;
}
?>

With the "find" you can "glob" whatever you like.
tmm at aon dot at
21-Dec-2002 04:50
I have written my own function for searching files, but it only supports ? and *
However it should be easily expandable.

<?php
// e.g. $matches=GetMachingFiles(GetContents("."),"*.txt");
function GetMatchingFiles($files, $search) {

  
// Split to name and filetype
  
if(strpos($search,".")) {
    
$baseexp=substr($search,0,strpos($search,"."));
    
$typeexp=substr($search,strpos($search,".")+1,strlen($search));
   } else {
    
$baseexp=$search;
    
$typeexp="";
   }
    
  
// Escape all regexp Characters
  
$baseexp=preg_quote($baseexp);
  
$typeexp=preg_quote($typeexp);
    
  
// Allow ? and *
  
$baseexp=str_replace(array("\*","\?"), array(".*","."), $baseexp);
  
$typeexp=str_replace(array("\*","\?"), array(".*","."), $typeexp);
      
  
// Search for Matches
  
$i=0;
   foreach(
$files as $file) {
    
$filename=basename($file);
      
     if(
strpos($filename,".")) {
      
$base=substr($filename,0,strpos($filename,"."));
      
$type=substr($filename,strpos($filename,".")+1,strlen($filename));
     } else {
      
$base=$filename;
      
$type="";
     }

     if(
preg_match("/^".$baseexp."$/i",$base) && preg_match("/^".$typeexp."$/i",$type))  {
      
$matches[$i]=$file;
      
$i++;
     }
   }
   return
$matches;
}

And if
someone's searching for a function which gets all files from a directory including the subdirectories:

// Returns all Files contained in given dir, including subdirs
function GetContents($dir,$files=array()) {
  if(!($res=opendir($dir))) exit("$dir doesn'
t exist!");
  while(($file=readdir($res))==TRUE)
   if($file!="
." && $file!="..")
     if(is_dir("
$dir/$file")) $files=GetContents("$dir/$file",$files);
       else array_push($files,"
$dir/$file");
    
  closedir($res);
  return $files;
}

?>
leon at leonatkinson dot com
17-Oct-2002 06:03
Since this function is a wrapper for the OS function of the same name, you may find it helpful to look at the man page while the exact PHP implementation is sorted out.

You might have some luck passing in the literal values of the constants defined in /usr/include/glob.h.  For example, GLOB_NOSORT is defined as (1 << 2), which is 4.  In PHP, glob('*.php', 4) will returns an unsorted list for me in RH 7.x.  YMMV.
opessin at ifrance dot com
07-Jul-2002 03:48
If this function is not available in your version of PHP, think looking at the 'Directory Functions' which can be used instead.
http://www.php.net/manual/en/ref.dir.php

Citas célebres

La visión es el arte de ver las cosas invisibles.

Jonathan Swift
Escritor irlandés
(1667-1745)
Citas en tu mail
©Contenidos Gratis

Ilusiones Opticas
ilusion_optica_010.jpg
Contenidos Web

Chiste de... Varios
Cosas de caníbales

Un caníbal le pregunta a otro:

- ¿Qué tal te cayó mi hermana?

- Le faltó sal!
Chistes en tu mail
©ContenidosGratis

Humor Gráfico
humor_grafico_009.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_0100.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