<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5375078233005583171</id><updated>2011-11-27T15:52:41.807-08:00</updated><category term='articulos'/><category term='ejemplos'/><category term='codigo'/><title type='text'>Todo Sobre PHP</title><subtitle type='html'>Aquí podras encontrar algunos truquillos para programar en php...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://todo-php.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://todo-php.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Juan Carlos Ganzo</name><uri>http://www.blogger.com/profile/01735226675540043291</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_F-X2CWNdRzY/RqpewwHQxzI/AAAAAAAAAAY/3_ARLeQeFd4/s200/02-07-06_1903.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>28</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5375078233005583171.post-4476169801927166812</id><published>2008-03-14T11:29:00.000-07:00</published><updated>2008-03-14T11:30:56.518-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='codigo'/><title type='text'>Muestra un gráfico de barras</title><content type='html'>Lo que realiza, es coger una imagen y alargarla para adaptarla al gráfico. Para este código, deves disponer de 3 imagenes denominadas: cuador_rojo.gif, cuadro_verde.gif y cuadro_azul.gif de un tamaño de 20x20 pixels. &lt;br /&gt;&lt;br /&gt;'&lt;'?&lt;br /&gt;$anchura1=100;&lt;br /&gt;$anchura2=40;&lt;br /&gt;$anchura3=80;&lt;br /&gt;?&gt;&lt;br /&gt;'&lt;'table border=0 cellspacing=0 cellpadding=0&gt;&lt;br /&gt; '&lt;'tr&gt;&lt;br /&gt;  '&lt;'td&gt;&lt;br /&gt;   '&lt;'img src="cuadro_rojo.gif" width=&lt;?echo $anchura1?&gt; height=20&gt;&lt;br /&gt;  '&lt;'/td&gt;&lt;br /&gt; '&lt;'/tr&gt;&lt;br /&gt; '&lt;'tr&gt;&lt;br /&gt;  '&lt;'td&gt;&lt;br /&gt;   '&lt;'img src="cuadro_verde.gif" width=&lt;?echo $anchura2?&gt; height=20&gt;&lt;br /&gt;  '&lt;'/td&gt;&lt;br /&gt; '&lt;'/tr&gt;&lt;br /&gt; '&lt;'tr&gt;&lt;br /&gt;  '&lt;'td&gt;&lt;br /&gt;   '&lt;'img src="cuadro_azul.gif" width=&lt;?echo $anchura3?&gt; height=20&gt;&lt;br /&gt;  '&lt;'/td&gt;&lt;br /&gt; '&lt;'/tr&gt;&lt;br /&gt;'&lt;'/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5375078233005583171-4476169801927166812?l=todo-php.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://todo-php.blogspot.com/feeds/4476169801927166812/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5375078233005583171&amp;postID=4476169801927166812' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/4476169801927166812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/4476169801927166812'/><link rel='alternate' type='text/html' href='http://todo-php.blogspot.com/2008/03/muestra-un-grfico-de-barras.html' title='Muestra un gráfico de barras'/><author><name>Juan Carlos Ganzo</name><uri>http://www.blogger.com/profile/01735226675540043291</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_F-X2CWNdRzY/RqpewwHQxzI/AAAAAAAAAAY/3_ARLeQeFd4/s200/02-07-06_1903.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5375078233005583171.post-8627942737999564533</id><published>2008-03-14T11:25:00.000-07:00</published><updated>2008-03-14T11:27:57.424-07:00</updated><title type='text'>Código para crear y eliminar una base de datos de MySQL desde PHP.</title><content type='html'>'&lt;'?&lt;br /&gt;#http://todo-php.blogspot.com&lt;br /&gt;#Crear base de datos&lt;br /&gt;$link=mysql_connect("servidor","usuario","password");&lt;br /&gt;&lt;br /&gt;$result=mysql_create_db("NombreBaseDatos",$link);&lt;br /&gt;if($result==0)&lt;br /&gt;{&lt;br /&gt; printf("No se ha podido crear la Base de Datos&lt;P&gt;\n");&lt;br /&gt;}else{&lt;br /&gt; printf("La Base de Datos se ha creado correctamente&lt;P&gt;\n");&lt;br /&gt;}&lt;br /&gt;mysql_close($link);&lt;br /&gt;exit;&lt;br /&gt;?&gt;&lt;br /&gt;&lt;br /&gt;'&lt;?&lt;br /&gt;#http://todo-php.blogspot.com/&lt;br /&gt;#Eliminar base de datos&lt;br /&gt;$link=mysql_connect("servidor","usuario","password");&lt;br /&gt;&lt;br /&gt;$result=mysql_drop_db("NombreBaseDatos",$link);&lt;br /&gt;if($result==0)&lt;br /&gt;{&lt;br /&gt; printf("No se ha podido eliminar la Base de Datos&lt;P&gt;\n");&lt;br /&gt;}else{&lt;br /&gt; printf("La Base de Datos se ha eliminado correctamente&lt;P&gt;\n");&lt;br /&gt;}&lt;br /&gt;mysql_close($link);&lt;br /&gt;exit;&lt;br /&gt;?&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5375078233005583171-8627942737999564533?l=todo-php.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://todo-php.blogspot.com/feeds/8627942737999564533/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5375078233005583171&amp;postID=8627942737999564533' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/8627942737999564533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/8627942737999564533'/><link rel='alternate' type='text/html' href='http://todo-php.blogspot.com/2008/03/cdigo-para-crear-y-eliminar-una-base-de.html' title='Código para crear y eliminar una base de datos de MySQL desde PHP.'/><author><name>Juan Carlos Ganzo</name><uri>http://www.blogger.com/profile/01735226675540043291</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_F-X2CWNdRzY/RqpewwHQxzI/AAAAAAAAAAY/3_ARLeQeFd4/s200/02-07-06_1903.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5375078233005583171.post-8872084177555246248</id><published>2008-03-14T11:18:00.000-07:00</published><updated>2008-03-14T11:24:01.047-07:00</updated><title type='text'>Muestra banners en paginas HTML aleatoriamente</title><content type='html'>En este ejemplo, se utiliza un archivo php para mostrar banners aleatoriamente. En este ejemplo se utilizan unicamente 4 banners. &lt;br /&gt;&lt;br /&gt;Para mostrar el banner, en la pagina HTML colocar:&lt;br /&gt;&lt;br /&gt;&lt;'!--lwp--&gt; &lt;br /&gt;&lt;'!--http://todo-php.blogspot.com/--&gt; &lt;br /&gt;&lt;'script&gt; &lt;br /&gt;&lt;'!-- &lt;br /&gt;var now = new Date(); &lt;br /&gt;'document.write ('&lt;'script language=javascript src="http://www.url.com/archivo.php?val=' + now.getTime() + '"&gt;&lt;\/'script&gt;'); &lt;br /&gt;--&gt; &lt;br /&gt;&lt;'/script&gt; &lt;br /&gt;&lt;'!--end lwp--&gt; &lt;br /&gt;&lt;br /&gt;Se utiliza la variable val para emitir un numero aleatorio, de esta manera se refresca la imagen.&lt;br /&gt;&lt;br /&gt;&lt;'?&lt;br /&gt;&lt;br /&gt;srand(time());&lt;br /&gt;$x=rand(1,4); //genera un numero aleatorio&lt;br /&gt;switch ($x)&lt;br /&gt;{&lt;br /&gt; case 1:&lt;br /&gt;  #banner1&lt;br /&gt;  $enlace="http://www.url.com/archivo.html";&lt;br /&gt;  $imagen="http://www.url.com/banner.gif";&lt;br /&gt;  $tamaño="width=115 height=115"; //definimos la anchura y altura del banner&lt;br /&gt;  break;&lt;br /&gt; case 2:&lt;br /&gt;  #banner2&lt;br /&gt;  $enlace="http://www.url.com/archivo.html";&lt;br /&gt;  $imagen="http://www.url.com/banner.gif";&lt;br /&gt;  $tamaño="width=115 height=115"; //definimos la anchura y altura del banner&lt;br /&gt;  break;&lt;br /&gt; case 3:&lt;br /&gt;  #banner3&lt;br /&gt;  $enlace="http://www.url.com/archivo.html";&lt;br /&gt;  $imagen="http://www.url.com/banner.gif";&lt;br /&gt;  $tamaño="width=115 height=115"; //definimos la anchura y altura del banner&lt;br /&gt;  break;&lt;br /&gt; case 4:&lt;br /&gt;  #banner4&lt;br /&gt;  $enlace="http://www.url.com/archivo.html";&lt;br /&gt;  $imagen="http://www.url.com/banner.gif";&lt;br /&gt;  $tamaño="width=115 height=115"; //definimos la anchura y altura del banner&lt;br /&gt;  break;&lt;br /&gt;}&lt;br /&gt;?&gt;&lt;br /&gt;document.write ('&lt;'center&gt;&lt;?echo $cadena?&gt;&lt;'/center&gt;');&lt;br /&gt;&lt;?&lt;br /&gt;}&lt;br /&gt;?&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5375078233005583171-8872084177555246248?l=todo-php.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://todo-php.blogspot.com/feeds/8872084177555246248/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5375078233005583171&amp;postID=8872084177555246248' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/8872084177555246248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/8872084177555246248'/><link rel='alternate' type='text/html' href='http://todo-php.blogspot.com/2008/03/muestra-banners-en-paginas-html.html' title='Muestra banners en paginas HTML aleatoriamente'/><author><name>Juan Carlos Ganzo</name><uri>http://www.blogger.com/profile/01735226675540043291</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_F-X2CWNdRzY/RqpewwHQxzI/AAAAAAAAAAY/3_ARLeQeFd4/s200/02-07-06_1903.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5375078233005583171.post-4416550899502936028</id><published>2008-03-14T11:05:00.000-07:00</published><updated>2008-03-14T11:16:54.306-07:00</updated><title type='text'>Código en PHP para subir archivos al servidor sin necesidad de utilizar ningun programa de FTP</title><content type='html'>&lt;?&lt;br /&gt;if($archivo !=""){&lt;br /&gt; @copy($archivo, $archivo_name);&lt;br /&gt; echo "El archivo se ha guardado correctamente.";&lt;br /&gt;}&lt;br /&gt;else{&lt;br /&gt; echo "Selecciona el archivo a guardar en el servidor...";&lt;br /&gt;}&lt;br /&gt;?&gt;&lt;br /&gt;&lt;br /&gt;&lt;'html&gt;&lt;br /&gt;&lt;br /&gt;&lt;'body&gt;&lt;br /&gt;&lt;'form action="bajar.php" method="post" enctype="multipart/form-data"&gt;&lt;br /&gt;&lt;'input type="file" name="archivo"&gt; &lt;'input type="submit" value="Enviar"&gt;&lt;br /&gt;&lt;'/form&gt;&lt;br /&gt;&lt;'/body&gt;&lt;br /&gt;&lt;br /&gt;&lt;'/html&gt;&lt;br /&gt;NO OLVIDEN QUINTARLE lOS ' PARA QUE FUNCIONE.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5375078233005583171-4416550899502936028?l=todo-php.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://todo-php.blogspot.com/feeds/4416550899502936028/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5375078233005583171&amp;postID=4416550899502936028' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/4416550899502936028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/4416550899502936028'/><link rel='alternate' type='text/html' href='http://todo-php.blogspot.com/2008/03/cdigo-en-php-para-subir-archivos-al.html' title='Código en PHP para subir archivos al servidor sin necesidad de utilizar ningun programa de FTP'/><author><name>Juan Carlos Ganzo</name><uri>http://www.blogger.com/profile/01735226675540043291</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_F-X2CWNdRzY/RqpewwHQxzI/AAAAAAAAAAY/3_ARLeQeFd4/s200/02-07-06_1903.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5375078233005583171.post-8326533227685536099</id><published>2008-01-02T15:38:00.000-08:00</published><updated>2008-01-02T15:59:10.729-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='articulos'/><category scheme='http://www.blogger.com/atom/ns#' term='codigo'/><title type='text'>Arrastar datos por medio de campos hidden</title><content type='html'>Este es el codigo del primer formulario&lt;br /&gt;&lt;'Html'&gt;'&lt;br /&gt;&lt;br /&gt;'&lt;'Title'&gt;'Formulario1'&lt;'/Title'&gt;'&lt;br /&gt;&lt;br /&gt;' &lt;'body'&gt;'&lt;br /&gt;&lt;br /&gt;' &lt;'form name="ejemplo" action="formulario2.php"'&gt;'&lt;br /&gt;Campo1 '&lt;'input name="campo1" type="Textbox" / '&gt;' '&lt;'br'&gt;'&lt;br /&gt;Campo2 '&lt;'Input name="campo2" Type="TextBox" / '&gt;'&lt;'br'&gt;'&lt;br /&gt;'&lt;'input value="Enviar" Type="Submit" /'&gt;'&lt;br /&gt;&lt;br /&gt;' &lt;'/form'&gt;&lt;br /&gt;&lt;'/body'&gt;&lt;br /&gt;&lt;br /&gt;'&lt;'/html'&gt;&lt;br /&gt;&lt;br /&gt;este seria codigo del segundo formulario&lt;br /&gt;&lt;br /&gt;&lt;'Html'&gt;'&lt;br /&gt;&lt;br /&gt;'&lt;'Title'&gt;'formulario2'&lt;'/Title'&gt;'&lt;br /&gt;&lt;br /&gt;' &lt;'body'&gt;'&lt;br /&gt;&lt;br /&gt;' &lt;'form name="ejemplo" action="enviar.php"'&gt;'&lt;br /&gt;campo3 '&lt;'input name="campo3" type="Textbox" / '&gt;' '&lt;'br'&gt;'&lt;br /&gt;campo4 '&lt;'Input name="campo4" Type="TextBox" / '&gt;'&lt;'br'&gt;'&lt;br /&gt;&lt;br /&gt;'&lt;'?'php&lt;br /&gt;//Aqui cachamos los datos del formuario anterior&lt;br /&gt;?'&gt;'&lt;br /&gt; '&lt;'input name="campo1" type="hidden" value ="'&lt;'?php echo $_post['campo1'] ?&gt;" / '&gt;' '&lt;'br'&gt;'&lt;br /&gt; '&lt;'Input name="campo2" Type="hidden" value ="'&lt;'?php echo $_post['campo2'] ?'&gt;' / '&gt;'&lt;'br'&gt;'&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;'&lt;'input value="Enviar" Type="Submit" /'&gt;'&lt;br /&gt;&lt;br /&gt;' &lt;'/form'&gt;&lt;br /&gt;&lt;'/body'&gt;&lt;br /&gt;&lt;br /&gt;'&lt;'/html'&gt;&lt;br /&gt;&lt;br /&gt;y de esta manera podemos ir arrastarando los datos de formulario en formulario no es la manera mas segura pero nos puede sacar de apuros. mas adelante pondre un ejemplo con manejo de sesiones.&lt;br /&gt;una disculpa por la podre redacción del ejemplo pero fue echo de manera muy rapida.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5375078233005583171-8326533227685536099?l=todo-php.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://todo-php.blogspot.com/feeds/8326533227685536099/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5375078233005583171&amp;postID=8326533227685536099' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/8326533227685536099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/8326533227685536099'/><link rel='alternate' type='text/html' href='http://todo-php.blogspot.com/2008/01/arrastar-datos-por-medio-de-campos.html' title='Arrastar datos por medio de campos hidden'/><author><name>Juan Carlos Ganzo</name><uri>http://www.blogger.com/profile/01735226675540043291</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_F-X2CWNdRzY/RqpewwHQxzI/AAAAAAAAAAY/3_ARLeQeFd4/s200/02-07-06_1903.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5375078233005583171.post-6892512058438363933</id><published>2007-12-29T15:07:00.001-08:00</published><updated>2007-12-29T15:37:51.941-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ejemplos'/><category scheme='http://www.blogger.com/atom/ns#' term='articulos'/><title type='text'>Ejemplo de Multiplicacion</title><content type='html'>&lt;span style="font-size:85%;"&gt;Para este ejemplo es a petición de un usuario que necesita un cotizador&lt;br /&gt;deben de crear una pagina con un formlulario cuyo codigo debe quedar mas o menos así:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;'&lt;'Html'&gt;'&lt;br /&gt;&lt;br /&gt;'&lt;'Title'&gt;'Ejemplo'&lt;'/Title'&gt;'&lt;br /&gt;&lt;br /&gt;' &lt;'body'&gt;'&lt;br /&gt;&lt;br /&gt;' &lt;'form name="ejemplo" action="calcula.php"'&gt;'&lt;br /&gt;Dias '&lt;'input name="dias" type="Textbox" / '&gt;' '&lt;'br'&gt;'&lt;br /&gt;Precio '&lt;'Input name="Precio" Type="TextBox" / '&gt;'&lt;'br'&gt;'&lt;br /&gt;'&lt;'input value="Enviar" Type="Submit" /'&gt;'&lt;br /&gt;&lt;br /&gt;' &lt;'/form'&gt;&lt;br /&gt;&lt;'/body'&gt;&lt;br /&gt;&lt;br /&gt;'&lt;'/html'&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Depues debe de crear una pagina donde cacharemos los datos la cual se llamara calcula.php que es la que tenemos definida en el action donce podemos colocar el siguiente codigo y con eso obtendriamos el resultado de multilpicar el numero de dias por el precio de arriendo. espero les sea de utilidad hasta la proxima&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;'&lt;'?php &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;$d = $_GET['dias'];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;$p = $_GET['Precio'];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;echo "El resultado es= ".$d*$p; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;?'&gt;'&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5375078233005583171-6892512058438363933?l=todo-php.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://todo-php.blogspot.com/feeds/6892512058438363933/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5375078233005583171&amp;postID=6892512058438363933' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/6892512058438363933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/6892512058438363933'/><link rel='alternate' type='text/html' href='http://todo-php.blogspot.com/2007/12/ejemplo-de-multiplicacion.html' title='Ejemplo de Multiplicacion'/><author><name>Juan Carlos Ganzo</name><uri>http://www.blogger.com/profile/01735226675540043291</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_F-X2CWNdRzY/RqpewwHQxzI/AAAAAAAAAAY/3_ARLeQeFd4/s200/02-07-06_1903.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5375078233005583171.post-8617451078822614703</id><published>2007-08-01T10:51:00.000-07:00</published><updated>2007-08-01T10:52:39.926-07:00</updated><title type='text'>Buscador de palabras</title><content type='html'>&lt;p&gt;&lt;span style="font-family:Arial, Helvetica, sans-serif;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;Muchas páginas llevan su buscador propia de elementos dentro de la web. Cón este código se puede hacer un buscador senzillo que busca una palabra dentro de una Tabla con muchas noticias y cuando la encuentra las muestra por pantalla.&lt;br /&gt;&lt;br /&gt;La palabra o texto a buscar se lo enviamos desde otra página usando una variable que llamaremos $palabra. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;FORM ACTION="busca.php&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;INPUT TYPE="TEXT" NAME="palabra"&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;INPUT TYPE="SUBMIT" NAME="Buscar"&amp;gt;"&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Busca.php&lt;br /&gt;&lt;br /&gt; &amp;lt; ?&lt;br /&gt;&lt;br /&gt; $conexio = mysql_connect("nombre_servidor", "usuario", "contraseña");&lt;br /&gt;&lt;br /&gt; mysql_select_db ("nombre_BBDD", $conexio) OR die ("No se puede conectar");&lt;/p&gt;&lt;br /&gt;&lt;p&gt;// SQL para la búsqueda&lt;br /&gt;&lt;br /&gt; $sql="SELECT * FROM documentos WHERE documento LIKE '%".$palabra."%' ";&lt;br /&gt;&lt;br /&gt; $result=mysql_query($sql,$conexio);&lt;br /&gt;&lt;br /&gt; // Si hay resultados crea una tabla y los muestra&lt;br /&gt;&lt;br /&gt; if ($row= mysql_fetch_array($result))&lt;br /&gt;&lt;br /&gt; {&lt;br /&gt;&lt;br /&gt; echo "&amp;lt;TABLE BORDER='0'&amp;gt;";&lt;br /&gt;&lt;br /&gt; DO&lt;br /&gt;&lt;br /&gt; {&lt;br /&gt;&lt;br /&gt; echo "$row["documento"]";&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; WHILE ($row=mysql_fetch_array($result));&lt;br /&gt;&lt;br /&gt; echo "&amp;lt;/TABLE&amp;gt;";&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; mysql_close ($conexio);&lt;br /&gt;&lt;br /&gt; ?&amp;gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5375078233005583171-8617451078822614703?l=todo-php.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://todo-php.blogspot.com/feeds/8617451078822614703/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5375078233005583171&amp;postID=8617451078822614703' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/8617451078822614703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/8617451078822614703'/><link rel='alternate' type='text/html' href='http://todo-php.blogspot.com/2007/08/buscador-de-palabras.html' title='Buscador de palabras'/><author><name>Juan Carlos Ganzo</name><uri>http://www.blogger.com/profile/01735226675540043291</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_F-X2CWNdRzY/RqpewwHQxzI/AAAAAAAAAAY/3_ARLeQeFd4/s200/02-07-06_1903.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5375078233005583171.post-2047888754786362408</id><published>2007-08-01T10:38:00.000-07:00</published><updated>2007-08-01T10:42:16.168-07:00</updated><title type='text'>Como mostrar la fecha de actualización de tu pagina</title><content type='html'>Si quieres indicar cuando fue actualizada la página, puedes usar:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;&lt;?php&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;print &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"Actualizada el "&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;print (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;date&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"d-m-Y"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;, &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;filemtime&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;basename&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$_SERVER&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"PHP_SELF"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;]))));&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;?&gt;&lt;/span&gt; &lt;/span&gt;&lt;/code&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5375078233005583171-2047888754786362408?l=todo-php.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://todo-php.blogspot.com/feeds/2047888754786362408/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5375078233005583171&amp;postID=2047888754786362408' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/2047888754786362408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/2047888754786362408'/><link rel='alternate' type='text/html' href='http://todo-php.blogspot.com/2007/08/como-mostrar-la-fecha-de-actualizacin.html' title='Como mostrar la fecha de actualización de tu pagina'/><author><name>Juan Carlos Ganzo</name><uri>http://www.blogger.com/profile/01735226675540043291</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_F-X2CWNdRzY/RqpewwHQxzI/AAAAAAAAAAY/3_ARLeQeFd4/s200/02-07-06_1903.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5375078233005583171.post-4454805745753560158</id><published>2007-08-01T10:05:00.000-07:00</published><updated>2007-08-01T10:29:01.227-07:00</updated><title type='text'>Hosting Gratuito PHP y MYSQL</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;Hola que tal mis queridos educando hace varias semanas me encontraba buscando hosting gratuito sin publicidad y para ser sinceros no encontré alguno que lo ofreciera y pues la verdad es algo entendible ya que nadie te puede dar algo sin ganar algo a cambio pase por varios servidores de hosting gratuitos y aquí les dejo 3 de los cuales yo actualmente estoy usando y el que mas me agrado fue el de &lt;a href="http://www.phpnet.us/"&gt;PhpNet &lt;/a&gt;, y es que a pesar de que este hospedaje al igual que todos te pone publicidad en tu pagina esta es casi nula ya que la publicidad que te pone es un banner al final de la misma no como otros servicios de hosting que te llenan de popups y te poner un superbanner en la parte superior , este alojamiento te permite crear hasta tres bases de datos mysql, tienes acceso ftp, un panel de administración del sitio , puedes direccionar tu dominio&lt;/span&gt;&lt;span style="font-size:85%;"&gt; hacia ese hosting la verdad este muy bien sin contar con el espacio que te proporciona y el ancho de banda este demasiado bien actualmente tengo alojada una pagina ahí &lt;a href="http://www.series.phpnet.us/"&gt;Tus Series On Line  &lt;/a&gt; y la verdad que no me puedo quejar.&lt;br /&gt;&lt;br /&gt;Los otros dos sitios de alojamiento que también tengo habilitados son iespana y lycos estos sitios igual proporcionan hospedaje con soporte para php y mysql la desventaja de ellos es que solo te permite una base de datos y el nombre de la misma te la proporcionan ellos y la verdad están bastante raros los nombre pero paro los que quieran hacer pruebas con php cualquiera de estos tres sitios de hospedajes les vendrá muy bien&lt;/span&gt; &lt;/p&gt;  .&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5375078233005583171-4454805745753560158?l=todo-php.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://todo-php.blogspot.com/feeds/4454805745753560158/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5375078233005583171&amp;postID=4454805745753560158' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/4454805745753560158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/4454805745753560158'/><link rel='alternate' type='text/html' href='http://todo-php.blogspot.com/2007/08/hosting-gratuito-php-y-mysql.html' title='Hosting Gratuito PHP y MYSQL'/><author><name>Juan Carlos Ganzo</name><uri>http://www.blogger.com/profile/01735226675540043291</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_F-X2CWNdRzY/RqpewwHQxzI/AAAAAAAAAAY/3_ARLeQeFd4/s200/02-07-06_1903.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5375078233005583171.post-7538597093694134450</id><published>2007-07-26T12:52:00.000-07:00</published><updated>2007-07-26T12:53:51.947-07:00</updated><title type='text'>PHP6</title><content type='html'>&lt;p style="font-family: verdana;"&gt;&lt;span style="font-size:85%;"&gt;Está previsto el lanzamiento en breve de la rama 6 de PHP, cuando se lance esta nueva versión, quedarán solo dos ramas activas en desarrollo (PHP 5 y 6) puesto que se ha comunicado que PHP 4 será discontinuado el 13 de Julio de 2007.&lt;/span&gt;&lt;/p&gt; &lt;p style="font-family: verdana;"&gt;&lt;span style="font-size:85%;"&gt;Las diferencias que encontraremos frente a PHP 5 son:&lt;/span&gt;&lt;/p&gt; &lt;ul style="font-family: verdana;"&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Soportará &lt;a href="http://es.wikipedia.org/wiki/Unicode" title="Unicode"&gt;Unicode&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Limpieza de funcionalidades obsoletas como &lt;i&gt;register_globals&lt;/i&gt;, &lt;i&gt;safe_mode&lt;/i&gt;...&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;PECL&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Mejoras en orientación a objetos&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Lista completa &lt;a href="http://www.php.net/%7Ederick/meeting-notes.html"&gt;aquí&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5375078233005583171-7538597093694134450?l=todo-php.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://todo-php.blogspot.com/feeds/7538597093694134450/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5375078233005583171&amp;postID=7538597093694134450' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/7538597093694134450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/7538597093694134450'/><link rel='alternate' type='text/html' href='http://todo-php.blogspot.com/2007/07/php6.html' title='PHP6'/><author><name>Juan Carlos Ganzo</name><uri>http://www.blogger.com/profile/01735226675540043291</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_F-X2CWNdRzY/RqpewwHQxzI/AAAAAAAAAAY/3_ARLeQeFd4/s200/02-07-06_1903.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5375078233005583171.post-7258555728574942652</id><published>2007-07-20T23:30:00.000-07:00</published><updated>2007-07-20T23:32:58.974-07:00</updated><title type='text'>PHP orientado a objetos</title><content type='html'>Cuando a principios de los años 80 se empezó a experimentar la Programacion Orientada a Objetos (POO) esta ha ido suplantando la programacion tradicional, por esta razon y aunque PHP no sea orientado a objetos, PHP incorpora sus principales características para que podamos trabajar con clases y objetos.&lt;br /&gt;&lt;br /&gt;Clases y Objetos&lt;br /&gt;Para entender la programacion orientada a objetos debemos primero entender lo que es una clase, pero primero diremos que un objeto es un conjunto de atributos y metodos agrupados.&lt;br /&gt;&lt;br /&gt;Una clase es un grupo de objetos que comparten los mismos atributos y métodos, veamos como podemos crear una clase llamada Imagen:&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;? &lt;br /&gt;class Imagen { &lt;br /&gt; // Aqui el codigo de la clase &lt;br /&gt;} &lt;br /&gt;?&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;Metodos y atributos&lt;br /&gt;Esta clase contendrá un seguido de atributos, que definiremos con la palabra reservada var, y metodos, que programaremos como funciones usando function.&lt;br /&gt;&lt;br /&gt;Para crear un objeto de tipo imagen se ejecutará el constructor de la imagen que será el metodo con el mismo nombre que la clase o en PHP5 el metodo llamado __construct(), veamos un ejemplo:&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;? &lt;br /&gt;class Imagen { &lt;br /&gt; var $src; // Estos són los atributos &lt;br /&gt; var $border; // de los objetos asociados &lt;br /&gt; // Esta funcion es el constructor &lt;br /&gt; function Imagen($src,$border) { &lt;br /&gt;  $this-&gt;src=$src; &lt;br /&gt;  $this-&gt;border=$border; &lt;br /&gt; } &lt;br /&gt;} &lt;br /&gt;// Creamos un objeto imagen &lt;br /&gt;$logo = new Imagen("logo.gif",3); &lt;br /&gt;?&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;Tambien podemos crear mas metodos ademas del constructor, vamos a completar el ejemplo con un método que imprima la imagen en el navegador del visitante:&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;? &lt;br /&gt;class Imagen { &lt;br /&gt; var $src; &lt;br /&gt; var $border; &lt;br /&gt; function Imagen($src,$border) { &lt;br /&gt;  $this-&gt;src=$src; &lt;br /&gt;  $this-&gt;border=$border; &lt;br /&gt; } &lt;br /&gt; // Esta funcion es un método de Imagen &lt;br /&gt; function Imprimir() { &lt;br /&gt; echo "&lt;img src=\""; &lt;br /&gt; echo $this-&gt;src; &lt;br /&gt; echo "\" border=\""; &lt;br /&gt; echo $this-&gt;border; &lt;br /&gt; echo "\"&gt;"; &lt;br /&gt; } &lt;br /&gt;} &lt;br /&gt;$logo = new Imagen("logo.gif",3); &lt;br /&gt;// Llamamos el nuevo método &lt;br /&gt;$logo-&gt;Imprimir(); &lt;br /&gt;?&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;Puedes ver cómo efectivamente este ejemplo funciona y es un magnifico ejemplo de cómo nos puede simplificar algo rutinario como la creacion de multiples imagenes.&lt;br /&gt;&lt;br /&gt;Heréncia de clases&lt;br /&gt;Si resulta que hemos creado una clase pero que ademas vemos que hay unos determinados objetos de esta clase que comparten otras cualidades por lo que queremos englobarlos en una clase distinta, lo que podemos hacer es ponerlos en una subclase, los objetos de la subclase, mantendran todos los métodos y atributos de la clase padre y ademas compartiran los de la clase derivada.&lt;br /&gt;&lt;br /&gt;Vamos a ver cómo podemos definir una subclase de la clase Imagen definida en la pagina anterior para imagenes de tamaño 468 x 60, esta subclase se llamará Banner y será de la siguiente manera:&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;?&lt;br /&gt;// Definimos la subclase de Banner&lt;br /&gt;class Banner extends Imagen {&lt;br /&gt;  // Esta es la nueva funcion Imprimir para banners&lt;br /&gt;  function Imprimir() {&lt;br /&gt;    echo "&lt;img src=\"";&lt;br /&gt;    echo $this-&gt;src;&lt;br /&gt;    echo "\" border=\"";&lt;br /&gt;    echo $this-&gt;border;&lt;br /&gt;    echo "\" width=\"468\" height=\"60\"&gt;";&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;?&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;Y finalmente crearemos el objeto $banner_1 y lo imprimiremos:&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;?&lt;br /&gt;$banner_1 = new Banner("anunciante1.gif",0);&lt;br /&gt;$banner_1-&gt;Imprimir();&lt;br /&gt;?&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;Tener en cuenta que en el codigo de la subclase falta el código de la clase Imagen, sino no funcionará.&lt;br /&gt;&lt;br /&gt;Vemos que no declaramos constructor para banner, podemos crearle un constructor especifico, pero si no lo hacemos cuando hagamos new Banner, llamaremos al constructor de la clase padre Imagen.&lt;br /&gt;&lt;br /&gt;Cuando hacemos Imprimir() del objeto perteneciente a la base derivada Banner, se llama al metodo Imprimir de Banner y no al de Imagen aunque se llamen igual.&lt;br /&gt;&lt;br /&gt;En PHP5, las cosas son un poco distintas, porque el motor Zend Engine 2, está preparado para trabajar con Objetos a fondo, esto implica una gran cantidad de cambios a nivel interno y los siguientes cambios externos:&lt;br /&gt;&lt;br /&gt;Constructores y destructores&lt;br /&gt;Si trabajamos con PHP5, para definir un costructor, usamos el método __construct, vamos a ver un ejemplo:&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;?&lt;br /&gt;class Imagen {&lt;br /&gt;  var $src;     // Estos són los atributos&lt;br /&gt;  var $border;  // de los objetos asociados&lt;br /&gt;  // Esta funcion es el constructor&lt;br /&gt;  function __construct($src,$border) {&lt;br /&gt;    $this-&gt;src=$src;&lt;br /&gt;    $this-&gt;border=$border;&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;// Creamos un objeto imagen&lt;br /&gt;$logo = new Imagen("logo.gif",3);&lt;br /&gt;?&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;Ademas tenemos la opcion de crear un destructor que se ejecutará cuando el objeto va a ser eliminado de´la memória, el constructor se define con el método __destruct.&lt;br /&gt;&lt;br /&gt;Encapsulamiento&lt;br /&gt;Este es un concepto nuevo en PHP5, el encapsulamiento permite el uso de variables y métodos internos a un objeto que no pueden ser accedidos internamente, de esta manera existen tres tipos de objetos:&lt;br /&gt;&lt;br /&gt;    public - Son accesibles desde todo el código.&lt;br /&gt;    protected - Son accesibles desde la clase actual y las clases derivadas.&lt;br /&gt;    private - Son accesibles desde la clase actual&lt;br /&gt;&lt;br /&gt;Vamos a ver el ejemplo de antes pero con atributos protejidos:&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;?&lt;br /&gt;class Imagen {&lt;br /&gt;  protected $src;     // Estos són los atributos&lt;br /&gt;  private $border;  // de los objetos asociados&lt;br /&gt;  // Esta funcion es el constructor&lt;br /&gt;  function __construct($src,$border) {&lt;br /&gt;    $this-&gt;src=$src;&lt;br /&gt;    $this-&gt;border=$border;&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;// Creamos un objeto imagen&lt;br /&gt;$logo = new Imagen("logo.gif",3);&lt;br /&gt;?&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;Y estos son los cambios principales de PHP5, ademas de incorporat un constructor de copia&lt;br /&gt; &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;__clone&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;y algunas otras opciones&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5375078233005583171-7258555728574942652?l=todo-php.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://todo-php.blogspot.com/feeds/7258555728574942652/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5375078233005583171&amp;postID=7258555728574942652' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/7258555728574942652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/7258555728574942652'/><link rel='alternate' type='text/html' href='http://todo-php.blogspot.com/2007/07/php-orientado-objetos.html' title='PHP orientado a objetos'/><author><name>Juan Carlos Ganzo</name><uri>http://www.blogger.com/profile/01735226675540043291</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_F-X2CWNdRzY/RqpewwHQxzI/AAAAAAAAAAY/3_ARLeQeFd4/s200/02-07-06_1903.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5375078233005583171.post-4601894524149056844</id><published>2007-07-20T23:27:00.000-07:00</published><updated>2007-07-20T23:30:03.164-07:00</updated><title type='text'>Programando sin register_globals</title><content type='html'>Antes de la versión 4.2.0 de PHP, en el archivo php.ini, el parámetro de configuración register_globals aparecía por defecto como ON, lo que convertía todas las variables de los llamados Arrays Superglobales en variables de código.&lt;br /&gt;&lt;br /&gt;De esta manera, la variable pasada por URL $_GET['nombre'] estaría disponible también como $nombre, de manera que podriamos modificar variables del interior del código PHP pasandolas por URL, veamos un ejemplo:&lt;br /&gt; &lt;br /&gt; 000 &lt;br /&gt; 001 &lt;br /&gt; 002 &lt;br /&gt; 003 &lt;br /&gt; 004 &lt;br /&gt; 005 &lt;br /&gt; 006 &lt;br /&gt; &lt;br /&gt;&lt;? &lt;br /&gt;if ( $usuario ) {&lt;br /&gt; echo "Usuario correcto"; &lt;br /&gt;} else { &lt;br /&gt; echo "Usuario incorrecto"; &lt;br /&gt;} &lt;br /&gt;?&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;En este ejemplo, el visitante malintencionado podia pasar por URL (http://www.example.com/?usuario=1) la variable usuario y entrar al sistema sin contraseña.&lt;br /&gt;&lt;br /&gt;Pero esto suponía un problema en la seguridad de nuestros scripts y paso a tener como valor por defecto OFF a partir de la versión 4.2.0.&lt;br /&gt;&lt;br /&gt;Sin register_globals activado, deberemos modificar nuestra forma de trabajar con PHP, pues así ademas mejoraremos la seguridad de nuestros algoritmos, y para ello usaremos los llamados Arrays Superglobales, y el mismo código anterior pasará a ser:&lt;br /&gt; &lt;br /&gt; 000 &lt;br /&gt; 001 &lt;br /&gt; 002 &lt;br /&gt; 003 &lt;br /&gt; &lt;br /&gt;&lt;? &lt;br /&gt;setcookie ("nombre", "Eloi", time () + 7*24*60*60); &lt;br /&gt;echo 'El valor de la cookie es: '.$_COOKIE["nombre"]; &lt;br /&gt;?&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;De esta manera, además que el valor de 'nombre' no podrá ser enviado por URL (pagina.php?nombre=Benito), podremos trabajar con mas de una variable nombre ($nombre, $_COOKIE["nombre"], $_GET["nombre"]...).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5375078233005583171-4601894524149056844?l=todo-php.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://todo-php.blogspot.com/feeds/4601894524149056844/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5375078233005583171&amp;postID=4601894524149056844' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/4601894524149056844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/4601894524149056844'/><link rel='alternate' type='text/html' href='http://todo-php.blogspot.com/2007/07/programando-sin-registerglobals.html' title='Programando sin register_globals'/><author><name>Juan Carlos Ganzo</name><uri>http://www.blogger.com/profile/01735226675540043291</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_F-X2CWNdRzY/RqpewwHQxzI/AAAAAAAAAAY/3_ARLeQeFd4/s200/02-07-06_1903.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5375078233005583171.post-4080646748557502553</id><published>2007-07-20T23:26:00.000-07:00</published><updated>2007-07-20T23:27:04.276-07:00</updated><title type='text'>Saber si una tabla de una BD existe</title><content type='html'>&lt;p style="margin-right: 10px;" align="justify"&gt;No hay una función específica para saber si una tabla de una base de datos existe o no, pero si que hay una función que te devuelve una matriz con todos los nombres de las tablas 'mysql_list_tables("base de datos")'.&lt;br /&gt;Después sencillamente se hace un bucle en el que a cada paso se le va signando un nombre de la matriz $tablas, si en un paso se encuentra con una tabla con el mismo nombre que el que hemos pasado (el if), es que esta tabla existe por lo que se devuelve 1 (true), si el bucle finaliza con normalidad, significa que no ha encontrado el nombre de la tabla y no devolverá nada (false).&lt;br /&gt;Al principio y al final hemos incluido las funciones de conexión y desconexión de la base de datos, necesarios para trabajar con ellas.&lt;br /&gt;Esta función recibe dos parámetros; el nombre de la tabla y el nombre de la base de datos.&lt;/p&gt;     &lt;br /&gt;     &lt;hr color="#ff0000" width="50%"&gt;                               &lt;table border="0" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;         &lt;td&gt;          &lt;table align="right" cellpadding="0" cellspacing="0"&gt;           &lt;tbody&gt;&lt;tr&gt;&lt;td class="codigo" align="right"&gt;Código:&lt;/td&gt;&lt;/tr&gt;          &lt;/tbody&gt;&lt;/table&gt;         &lt;/td&gt;        &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;          &lt;table cellpadding="0" cellspacing="0" width="100%"&gt;           &lt;tbody&gt;&lt;tr&gt;            &lt;td class="codigop"&gt;             &lt;?php&lt;br /&gt;    //Copyright © McAnam.com &lt;br /&gt;    &lt;br /&gt;    $lincador = mysql_connect("servidor","usuario","contraseña");&lt;br /&gt;    &lt;br /&gt;    function tabla_existe($nombre_tb,$base_datos) { &lt;br /&gt;&lt;br /&gt;        $tablas = mysql_list_tables($base_datos); &lt;br /&gt;&lt;br /&gt;        while (list($tabla) = mysql_fetch_array($tablas)) { &lt;br /&gt;            if ($nombre_tb == $tabla){&lt;br /&gt;                return true;&lt;br /&gt;                break;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        return false;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    //Ejemplo de utilización de la función:&lt;br /&gt;    if (tabla_existe("nombre tabla","nombre base de datos"))&lt;br /&gt;        echo "La tabla que has seleccionado existe en tu base de datos";&lt;br /&gt;    else&lt;br /&gt;        echo "La tabla que has seleccionado NO existe en tu base de datos";&lt;br /&gt;    &lt;br /&gt;    //Fin ejemplo&lt;br /&gt;    mysql_close($lincador);&lt;br /&gt;?&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5375078233005583171-4080646748557502553?l=todo-php.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://todo-php.blogspot.com/feeds/4080646748557502553/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5375078233005583171&amp;postID=4080646748557502553' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/4080646748557502553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/4080646748557502553'/><link rel='alternate' type='text/html' href='http://todo-php.blogspot.com/2007/07/saber-si-una-tabla-de-una-bd-existe.html' title='Saber si una tabla de una BD existe'/><author><name>Juan Carlos Ganzo</name><uri>http://www.blogger.com/profile/01735226675540043291</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_F-X2CWNdRzY/RqpewwHQxzI/AAAAAAAAAAY/3_ARLeQeFd4/s200/02-07-06_1903.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5375078233005583171.post-9099195934259010450</id><published>2007-07-20T23:25:00.000-07:00</published><updated>2007-07-20T23:26:15.897-07:00</updated><title type='text'>Fecha de un día pasado de la semana</title><content type='html'>&lt;p style="margin-right: 10px;" align="justify"&gt;Este artículo es útil para ver el funcionamiento combinado de "date" y "mktime" y muestra una función que devuelve la fecha en formato "dd/mm/yyyy" del último día pasado.&lt;br /&gt;Si se quiere cambiar el formato de la fecha devuelta, habría que cambiar la siguiente línea por el formato deseado:&lt;br /&gt;&lt;br /&gt;return(date("d/m/Y", $fecha));&lt;br /&gt;&lt;br /&gt;Por ejemplo si quisiéramos 'mm-dd-aa':&lt;br /&gt;&lt;br /&gt;return(date("m-d-y", $fecha));&lt;br /&gt;&lt;br /&gt;La función recibe un día de la semana ($dia_semana), siendo 1 lunes, 2 martes, etc. hasta el domingo que puede ser 7 ó 0. Si recibe un valor mayor que 7 o menor que 0 devuelve error (-1).&lt;br /&gt;Recibe también las semanas transcurridas de forma que si se le pasa un 1 buscará el último día de la semana pasado, un 2 buscará el día de la semana anterior y así sucesivamente. Debe recibir un número positivo que no sea 0 o devolverá error (-1)&lt;/p&gt;     &lt;br /&gt;     &lt;hr color="#ff0000" width="50%"&gt;                       &lt;table border="0" cellpadding="0" cellspacing="0" width="100%"&gt;        &lt;tbody&gt;&lt;tr&gt;         &lt;td&gt;          &lt;table align="right" cellpadding="0" cellspacing="0"&gt;           &lt;tbody&gt;&lt;tr&gt;&lt;td class="codigo" align="right"&gt;Código:&lt;/td&gt;&lt;/tr&gt;          &lt;/tbody&gt;&lt;/table&gt;         &lt;/td&gt;        &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;          &lt;table cellpadding="0" cellspacing="0" width="100%"&gt;           &lt;tbody&gt;&lt;tr&gt;            &lt;td class="codigop"&gt;             &lt;?php &lt;br /&gt;   //Copyright © McAnam.com &lt;br /&gt;&lt;br /&gt;    function fecha_pasada($dia_semana, $semanas_transcurridas){&lt;br /&gt;        &lt;br /&gt;        $sale = 0;&lt;br /&gt;        $cont = 0;&lt;br /&gt;&lt;br /&gt;        if (($dia_semana &gt; 7) || ($dia_semana &lt; 0) || ($semanas_transcurridas &lt; 1)) return -1;&lt;br /&gt;        &lt;br /&gt;        if ($dia_semana == 7) $dia_semana=0;&lt;br /&gt;        &lt;br /&gt;        while (!$sale){&lt;br /&gt;            $fecha = mktime(0,0,0,date("m"), date("d") - $cont++, date("Y"));&lt;br /&gt;            $dia = date("w", $fecha);&lt;br /&gt;            if ($dia == $dia_semana){&lt;br /&gt;                if ($semanas_transcurridas &gt; 1)&lt;br /&gt;                    $semanas_transcurridas--;&lt;br /&gt;                else&lt;br /&gt;                    $sale = 1;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        return(date("d/m/Y", $fecha));&lt;br /&gt;        &lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    //Ejemplos de utilización&lt;br /&gt;    echo "Último lunes: ".fecha_pasada(1,1);&lt;br /&gt;    echo "&lt;br /&gt;";&lt;br /&gt;    echo "Hace 2 domingos: ".fecha_pasada(7,2);&lt;br /&gt;    &lt;br /&gt;?&gt;           &lt;/td&gt;           &lt;/tr&gt;          &lt;/tbody&gt;&lt;/table&gt;         &lt;/td&gt;        &lt;/tr&gt;       &lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5375078233005583171-9099195934259010450?l=todo-php.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://todo-php.blogspot.com/feeds/9099195934259010450/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5375078233005583171&amp;postID=9099195934259010450' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/9099195934259010450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/9099195934259010450'/><link rel='alternate' type='text/html' href='http://todo-php.blogspot.com/2007/07/fecha-de-un-da-pasado-de-la-semana.html' title='Fecha de un día pasado de la semana'/><author><name>Juan Carlos Ganzo</name><uri>http://www.blogger.com/profile/01735226675540043291</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_F-X2CWNdRzY/RqpewwHQxzI/AAAAAAAAAAY/3_ARLeQeFd4/s200/02-07-06_1903.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5375078233005583171.post-759918489476981903</id><published>2007-07-20T23:23:00.000-07:00</published><updated>2007-07-20T23:24:35.596-07:00</updated><title type='text'>Cambiar tamaño y peso de imágenes</title><content type='html'>Para trabajar con imágenes en PHP se suele usar la biblioteca GD. Esta biblioteca se puede descargar desde su página web &lt;a href="http://www.boutell.com/gd/" target="_blank"&gt;http://www.boutell.com/gd/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Para saber si tenemos instalado las librerías GD y que versión, lo podemos ver con &lt;i&gt;phpinfo()&lt;/i&gt; buscando "GD".&lt;br /&gt;&lt;br /&gt;Esta función de ejemplo &lt;b&gt;no funcionará&lt;/b&gt; sin la biblioteca GD. Esta función ha sido probada con la versión 2.0, por lo que alguna función puede (debe) devolver error en versiones anteriores, estas funciones susceptibles de ser problemáticas son las de tipo "imagexxxx". Si tuviéramos una versión anterior o nos dieran problemas estas funciones, podríamos reemplazar el "switch" que verifica el tipo de imagen y la asignación de cabecera previa, o sea este código:&lt;br /&gt;&lt;br /&gt;:&lt;br /&gt;&lt;br /&gt;&lt;table align="center" border="1" bordercolor="#008000" cellpadding="3" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;    /* &lt;br /&gt;        Se envía la cabecera de los datos de la imagen. &lt;br /&gt;        Cuando llegue aquí no debe de haber sido enviado NADA.&lt;br /&gt;        Si se ha enviado algo, aunque fuera un "intro" o espacio daría error&lt;br /&gt;    */&lt;br /&gt;    header("Content-type: ".$sTipo); &lt;br /&gt;    &lt;br /&gt;    // Se pinta la imagen según el tipo&lt;br /&gt;    switch($vDatosImg[2]){&lt;br /&gt;        case IMAGETYPE_GIF:&lt;br /&gt;            imagegif($imgDestino);&lt;br /&gt;            break;&lt;br /&gt;        case IMAGETYPE_JPEG:&lt;br /&gt;            imagejpeg($imgDestino);&lt;br /&gt;            break;&lt;br /&gt;        case IMAGETYPE_PNG:&lt;br /&gt;            imagepng($imgDestino);&lt;br /&gt;            break;&lt;br /&gt;        case IMAGETYPE_SWF:&lt;br /&gt;        case IMAGETYPE_PSD:&lt;br /&gt;        case IMAGETYPE_BMP:&lt;br /&gt;        case IMAGETYPE_TIFF_II:&lt;br /&gt;        case IMAGETYPE_TIFF_MM:&lt;br /&gt;        case IMAGETYPE_JPC:&lt;br /&gt;        case IMAGETYPE_JP2:&lt;br /&gt;        case IMAGETYPE_JPX:&lt;br /&gt;        case IMAGETYPE_JB2:&lt;br /&gt;        case IMAGETYPE_SWC:&lt;br /&gt;        case IMAGETYPE_IFF:&lt;br /&gt;            return -12;&lt;br /&gt;            break;&lt;br /&gt;        case IMAGETYPE_WBMP:&lt;br /&gt;            imagewbmp($imgDestino);&lt;br /&gt;            break;&lt;br /&gt;        case IMAGETYPE_XBM:&lt;br /&gt;            imagexbm($imgDestino);&lt;br /&gt;            break;&lt;br /&gt;        default:&lt;br /&gt;            return -13;&lt;br /&gt;            break;&lt;br /&gt;    }&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Por este otro:&lt;br /&gt;&lt;br /&gt;&lt;table align="center" border="1" bordercolor="#008000" cellpadding="3" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;    /* &lt;br /&gt;        Se envía la cabecera de los datos de la imagen. &lt;br /&gt;        Cuando llegue aquí no debe de haber sido enviado NADA.&lt;br /&gt;        Si se ha enviado algo, aunque fuera un "intro" o espacio daría error&lt;br /&gt;    */&lt;br /&gt;    header("Content-type: image/png");&lt;br /&gt;        &lt;br /&gt;    // Se pinta la imagen según el tipo&lt;br /&gt;    imagepng($imgDestino);&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;La función "iPintaImagenRedimensionada" recibe 5 parámetros:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;$sDirImagen:&lt;/b&gt; Cadena que debe contener la dirección de la imagen que queremos cambiar el tamaño, esta dirección puede ser relativa, absoluta, de archivo ó URL, ejemplos:&lt;br /&gt;&lt;br /&gt;&lt;table align="center" border="1" bordercolor="#008000" cellpadding="3" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Relativa:&lt;/td&gt;&lt;td&gt;imagen.gif&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Absoluta de archivo:&lt;/td&gt;&lt;td&gt;c:\imagenes\imagen.gif&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Absoluta de URL:&lt;/td&gt;&lt;td&gt;http://www.tuweb.com/imagenes/imagen.gif&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;$bEscalable:&lt;/b&gt; Booleano, si esta activado (1 ó TRUE) la imagen cambiara de forma porcentual al valor pasado por alto y ancho, así por ejemplo si lo establecemos a TRUE y le pasamos como ancho y alto &lt;b&gt;0.5&lt;/b&gt;, la imagen será reducida a la mitad de su tamaño, con &lt;b&gt;0.25&lt;/b&gt; a un cuarto de su tamaño, &lt;b&gt;2&lt;/b&gt; al doble de su tamaño, &lt;b&gt;1&lt;/b&gt; se quedaría en su tamaño ...&lt;br /&gt;Mientras que si este valor es FALSE (0) lo que hará será dar a la imagen resultante el tamaño pasado por alto y ancho directamente.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;$ancho y $alto:&lt;/b&gt; Pasan el ancho y alto de la imagen con las características que hemos comentado anteriormente con la variable $bEscalable. Si una de estas variables recibe un valor negativo, cogerá la medida proporcional correspondiente al otro valor, así por ejemplo si una imagen de 600px de ancho por 300px de alto recibe como valores $bEscalable 0, $ancho 300 y $alto -1; La imagen resultante tendrá 150px de alto, ya que el ancho se ha reducido a la mitad, el alto también se reduce.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;$iTipo:&lt;/b&gt; Entero que pasa el tipo del contenido MIME de la imagen, este valor no suele ser usado por la función, ya que antes de coger el tipo MIME por esta variable, lo intenta coger de las propias cabeceras de la imagen. Por lo que no es imprescindible que este parámetro sea pasado correctamente. Los tipo mime pueden ser:&lt;br /&gt;&lt;br /&gt;&lt;table align="center" border="1" bordercolor="#008000" cellpadding="3" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="background-color: rgb(0, 128, 0); color: rgb(255, 255, 255);" align="center"&gt;Valor&lt;/td&gt;&lt;td style="background-color: rgb(0, 128, 0); color: rgb(255, 255, 255);" align="center"&gt;Define&lt;/td&gt;&lt;td style="background-color: rgb(0, 128, 0); color: rgb(255, 255, 255);" align="center"&gt;salida cabecera Mime&lt;/td&gt;&lt;td style="background-color: rgb(0, 128, 0); color: rgb(255, 255, 255);" align="center"&gt;Descripción&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center"&gt;1&lt;/td&gt;&lt;td&gt;IMAGETYPE_GIF&lt;/td&gt;&lt;td&gt;image/gif&lt;/td&gt;&lt;td&gt;Imagen GIF (Dibujo)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center"&gt;2&lt;/td&gt;&lt;td&gt;IMAGETYPE_JPEG&lt;/td&gt;&lt;td&gt;image/jpeg&lt;/td&gt;&lt;td&gt;Imagen JPEG (Foto)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center"&gt;3&lt;/td&gt;&lt;td&gt;IMAGETYPE_PNG&lt;/td&gt;&lt;td&gt;image/png&lt;/td&gt;&lt;td&gt;Imagen PNG (muy usada en PHP)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center"&gt;4&lt;/td&gt;&lt;td&gt;IMAGETYPE_SWF&lt;/td&gt;&lt;td&gt;application/x-shockwave-flash&lt;/td&gt;&lt;td&gt;Animación flash&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center"&gt;5&lt;/td&gt;&lt;td&gt;IMAGETYPE_PSD&lt;/td&gt;&lt;td&gt;image/psd&lt;/td&gt;&lt;td&gt;Formato digital de Photoshop&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center"&gt;6&lt;/td&gt;&lt;td&gt;IMAGETYPE_BMP&lt;/td&gt;&lt;td&gt;image/bmp&lt;/td&gt;&lt;td&gt;Imagen de mapa de Bits&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center"&gt;7&lt;/td&gt;&lt;td&gt;IMAGETYPE_TIFF_II&lt;/td&gt;&lt;td&gt;image/tiff&lt;/td&gt;&lt;td&gt;Imagen Tiff con orden de bytes Intel&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center"&gt;8&lt;/td&gt;&lt;td&gt;IMAGETYPE_TIFF_MM&lt;/td&gt;&lt;td&gt;image/tiff&lt;/td&gt;&lt;td&gt;Imagen Tiff con orden de bytes Motorola&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center"&gt;9&lt;/td&gt;&lt;td&gt;IMAGETYPE_JPC&lt;/td&gt;&lt;td&gt;application/octet-stream&lt;/td&gt;&lt;td&gt;Gráfico&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center"&gt;10&lt;/td&gt;&lt;td&gt;IMAGETYPE_JP2&lt;/td&gt;&lt;td&gt;image/jp2&lt;/td&gt;&lt;td&gt;Imagen JP2 (jpeg 2000)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center"&gt;11&lt;/td&gt;&lt;td&gt;IMAGETYPE_JPX&lt;/td&gt;&lt;td&gt;application/octet-stream&lt;/td&gt;&lt;td&gt;Imagen JPX (JPEG extendido)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center"&gt;12&lt;/td&gt;&lt;td&gt;IMAGETYPE_JB2&lt;/td&gt;&lt;td&gt;application/octet-stream&lt;/td&gt;&lt;td&gt;Imagen JB2, imágenes bitonales&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center"&gt;13&lt;/td&gt;&lt;td&gt;IMAGETYPE_SWC&lt;/td&gt;&lt;td&gt;application/x-shockwave-flash&lt;/td&gt;&lt;td&gt;Componente de shockwave flash&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center"&gt;14&lt;/td&gt;&lt;td&gt;IMAGETYPE_IFF&lt;/td&gt;&lt;td&gt;image/iff&lt;/td&gt;&lt;td&gt;Imagen IFF&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center"&gt;15&lt;/td&gt;&lt;td&gt;IMAGETYPE_WBMP&lt;/td&gt;&lt;td&gt;image/vnd.wap.wbmp&lt;/td&gt;&lt;td&gt;Imagen wap&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center"&gt;16&lt;/td&gt;&lt;td&gt;IMAGETYPE_XBM&lt;/td&gt;&lt;td&gt;image/xbm&lt;/td&gt;&lt;td&gt;Imagen xbm (pequeños iconos)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;$iTipo podría recibir o bien el valor (1, 2, 3, 4) o el define (IMAGETYPE_XXX).&lt;br /&gt;&lt;br /&gt;Esta función pintará una imagen redimensionada si no ocurre ningún error. Si todo ha funcionada correctamente, devolverá 1, en caso contrario un número negativo. Debido a que puede devolver diferentes errores, hemos añadido una función que los gestiona y presenta una imagen describiendo el error. Esta función recibe un parametro que debería ser lo que devuelve la función de "iPintaImagenRedimensionada" (como se ve en el ejemplo).&lt;br /&gt;Esta función crea las imágenes con un tamaño fijo (400 x 40), para cambiar este tamaño modificar la línea:&lt;br /&gt;$imagen = imagecreate (400, 40);&lt;br /&gt;&lt;br /&gt;Y los colores que usa son los colores "McAnam" de fondo y el marrón oscuro para el texto. Para cambiar esto colores, modificar las líneas:&lt;br /&gt;$cFondo = imagecolorallocate ($imagen, 255, 226, 169);&lt;br /&gt;$cTexto = imagecolorallocate ($imagen, 153, 102, 0);&lt;br /&gt;&lt;br /&gt;"imagecolorallocate" recibe la imagen donde se va a definir el color y los tres colores rojo, verde y azul (rgb) de 0 a 255.&lt;br /&gt;     &lt;br /&gt;     &lt;hr color="#ff0000" width="50%"&gt;                               &lt;table border="0" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;         &lt;td&gt;          &lt;table align="right" cellpadding="0" cellspacing="0"&gt;           &lt;tbody&gt;&lt;tr&gt;&lt;td class="codigo" align="right"&gt;Código:&lt;/td&gt;&lt;/tr&gt;          &lt;/tbody&gt;&lt;/table&gt;         &lt;/td&gt;        &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;          &lt;table cellpadding="0" cellspacing="0" width="100%"&gt;           &lt;tbody&gt;&lt;tr&gt;            &lt;td class="codigop"&gt;             &lt;?php&lt;br /&gt;    //Copyright © McAnam.com&lt;br /&gt;    function iPintaImagenRedimensionada ($sDirImagen, $bEscalable, $ancho, $alto, $iTipo){&lt;br /&gt;        &lt;br /&gt;        // Cogemos los datos de la imagen&lt;br /&gt;        $vDatosImg = @getimagesize($sDirImagen);&lt;br /&gt;        &lt;br /&gt;        if (!$vDatosImg) return -8;&lt;br /&gt;        &lt;br /&gt;        // Recogemos el Tipo Mime&lt;br /&gt;        if (isset($vDatosImg['mime']))&lt;br /&gt;            $sTipo = $vDatosImg['mime'];&lt;br /&gt;        else if(isset($vDatosImg[2]))&lt;br /&gt;            $sTipo = image_type_to_mime_type($vDatosImg[2]);&lt;br /&gt;        else if (isset($iTipo))&lt;br /&gt;            $sTipo = image_type_to_mime_type($iTipo);&lt;br /&gt;        else&lt;br /&gt;            return -10;&lt;br /&gt;        &lt;br /&gt;        // Recogemos la imagen a partir de la dirección dada ($sDirImagen)&lt;br /&gt;        switch($vDatosImg[2]){&lt;br /&gt;            case IMAGETYPE_GIF:&lt;br /&gt;                $imgOrigen = imagecreatefromgif($sDirImagen);&lt;br /&gt;                break;&lt;br /&gt;            case IMAGETYPE_JPEG:&lt;br /&gt;                $imgOrigen = imagecreatefromjpeg($sDirImagen);&lt;br /&gt;                break;&lt;br /&gt;            case IMAGETYPE_PNG:&lt;br /&gt;                $imgOrigen = imagecreatefrompng($sDirImagen);&lt;br /&gt;                break;&lt;br /&gt;            case IMAGETYPE_SWF:&lt;br /&gt;            case IMAGETYPE_PSD:&lt;br /&gt;            case IMAGETYPE_BMP:&lt;br /&gt;            case IMAGETYPE_TIFF_II:&lt;br /&gt;            case IMAGETYPE_TIFF_MM:&lt;br /&gt;            case IMAGETYPE_JPC:&lt;br /&gt;            case IMAGETYPE_JP2:&lt;br /&gt;            case IMAGETYPE_JPX:&lt;br /&gt;            case IMAGETYPE_JB2:&lt;br /&gt;            case IMAGETYPE_SWC:&lt;br /&gt;            case IMAGETYPE_IFF:&lt;br /&gt;                return -11;&lt;br /&gt;                break;&lt;br /&gt;            case IMAGETYPE_WBMP:&lt;br /&gt;                $imgOrigen = imagecreatefromwbmp($sDirImagen);&lt;br /&gt;                break;&lt;br /&gt;            case IMAGETYPE_XBM:&lt;br /&gt;                $imgOrigen = imagecreatefromxbm($sDirImagen);&lt;br /&gt;                break;&lt;br /&gt;            default:&lt;br /&gt;                return -13;&lt;br /&gt;                break;&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        /*&lt;br /&gt;            Establecemos los tamaños:&lt;br /&gt;                - Si bEscalable viene como true.&lt;br /&gt;                  Se multiplican los valores recibidos para ancho y alto &lt;br /&gt;                  por el ancho y alto de la imagen, &lt;br /&gt;                  así 0.5 sería la mitad de la imagen y 2 sería el doble&lt;br /&gt;                - Si bEscalable viene como false.&lt;br /&gt;                  Los tamaños serán los pasados por ancho y alto directamente&lt;br /&gt;                - Si ancho o alto vienen como 0 o numero negativo, &lt;br /&gt;                  el valor de esta propiedad será asignada proporcionalmente con&lt;br /&gt;                  el valor de la otra.&lt;br /&gt;                - Si ancho y alto vienen como 0 o numero negativo, Error&lt;br /&gt;        */&lt;br /&gt;        &lt;br /&gt;        if (!(is_numeric($ancho)) || !(is_numeric($alto))) return -20;&lt;br /&gt;        &lt;br /&gt;        if ($bEscalable){&lt;br /&gt;            if ($ancho &gt; 0){&lt;br /&gt;                $ancho *= $vDatosImg[0];&lt;br /&gt;                if ($alto &gt; 0) $alto *= $vDatosImg[1];&lt;br /&gt;                else $alto = $vDatosImg[1] * ($ancho / $vDatosImg[0]);&lt;br /&gt;            }else if ($alto &gt; 0){&lt;br /&gt;                $alto *= $vDatosImg[1];&lt;br /&gt;                $ancho = $vDatosImg[0] * ($alto / $vDatosImg[1]);&lt;br /&gt;            }else{&lt;br /&gt;                return -21;    &lt;br /&gt;            } &lt;br /&gt;        }else{&lt;br /&gt;            if (($ancho &gt; 0) &amp;&amp;amp; ($alto &lt; 1))&lt;br /&gt;                $alto = $vDatosImg[1] * ($ancho / $vDatosImg[0]);&lt;br /&gt;            else if (($alto &gt; 0) &amp;&amp;amp; ($ancho &lt; 1))&lt;br /&gt;                $ancho = $vDatosImg[0] * ($alto / $vDatosImg[1]);&lt;br /&gt;            else if (($alto &lt; 1) &amp;&amp;amp; ($ancho &lt; 1))&lt;br /&gt;                return -21;    &lt;br /&gt;             &lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        // Se crea la nueva imagen redimensionada&lt;br /&gt;        if (function_exists("ImageCreateTrueColor"))&lt;br /&gt;            $imgDestino = ImageCreateTrueColor($ancho,$alto);&lt;br /&gt;        else&lt;br /&gt;            $imgDestino = ImageCreate($ancho,$alto);&lt;br /&gt;                &lt;br /&gt;        ImageCopyResized ($imgDestino, $imgOrigen, 0, 0, 0, 0, $ancho, $alto, $vDatosImg[0], $vDatosImg[1]);&lt;br /&gt;        &lt;br /&gt;        /* &lt;br /&gt;            Se envía la cabecera de los datos de la imagen. &lt;br /&gt;            Cuando llegue aquí no debe de haber sido enviado NADA.&lt;br /&gt;            Si se ha enviado algo, aunque fuera un "intro" o espacio daría error&lt;br /&gt;        */&lt;br /&gt;        header("Content-type: ".$sTipo); &lt;br /&gt;        &lt;br /&gt;        // Se pinta la imagen según el tipo&lt;br /&gt;        switch($vDatosImg[2]){&lt;br /&gt;            case IMAGETYPE_GIF:&lt;br /&gt;                imagegif($imgDestino);&lt;br /&gt;                break;&lt;br /&gt;            case IMAGETYPE_JPEG:&lt;br /&gt;                imagejpeg($imgDestino);&lt;br /&gt;                break;&lt;br /&gt;            case IMAGETYPE_PNG:&lt;br /&gt;                imagepng($imgDestino);&lt;br /&gt;                break;&lt;br /&gt;            case IMAGETYPE_SWF:&lt;br /&gt;            case IMAGETYPE_PSD:&lt;br /&gt;            case IMAGETYPE_BMP:&lt;br /&gt;            case IMAGETYPE_TIFF_II:&lt;br /&gt;            case IMAGETYPE_TIFF_MM:&lt;br /&gt;            case IMAGETYPE_JPC:&lt;br /&gt;            case IMAGETYPE_JP2:&lt;br /&gt;            case IMAGETYPE_JPX:&lt;br /&gt;            case IMAGETYPE_JB2:&lt;br /&gt;            case IMAGETYPE_SWC:&lt;br /&gt;            case IMAGETYPE_IFF:&lt;br /&gt;                return -12;&lt;br /&gt;                break;&lt;br /&gt;            case IMAGETYPE_WBMP:&lt;br /&gt;                imagewbmp($imgDestino);&lt;br /&gt;                break;&lt;br /&gt;            case IMAGETYPE_XBM:&lt;br /&gt;                imagexbm($imgDestino);&lt;br /&gt;                break;&lt;br /&gt;            default:&lt;br /&gt;                return -13;&lt;br /&gt;                break;&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        imagedestroy($imgOrigen);&lt;br /&gt;        imagedestroy($imgDestino);&lt;br /&gt;        &lt;br /&gt;        return 1;&lt;br /&gt;        &lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    function ErrorPintaImagenRedimensionada($iRetorno){&lt;br /&gt;        &lt;br /&gt;        $sTexto1 = "";&lt;br /&gt;        $sTexto2 = "";&lt;br /&gt;        &lt;br /&gt;        switch($iRetorno){&lt;br /&gt;            case -8:&lt;br /&gt;                $sTexto1 = "La dirección de la imagen dada no es válida";&lt;br /&gt;                break;&lt;br /&gt;            case -10:&lt;br /&gt;                $sTexto1 = "No se ha encontrado el tipo mime de la imagen";&lt;br /&gt;                $sTexto2 = "ni en sus cabeceras ni pasadas por parámetro";&lt;br /&gt;                break;&lt;br /&gt;            case -11:&lt;br /&gt;                $sTexto1 = "El tipo de la imagen dado no se puede redimensionar";&lt;br /&gt;                $sTexto2 = "Se recomiendan los tipos jpg, gif ó png";&lt;br /&gt;                break;&lt;br /&gt;            case -12:&lt;br /&gt;                $sTexto1 = "No es posible crear una imagen con el tipo dado";&lt;br /&gt;                $sTexto2 = "Se recomiendan los tipos jpg, gif ó png";&lt;br /&gt;                break;&lt;br /&gt;            case -13:&lt;br /&gt;                $sTexto1 = "El tipo mime no esta implementado";&lt;br /&gt;                $sTexto2 = "Se recomiendan los tipos jpg, gif ó png";&lt;br /&gt;                break;&lt;br /&gt;            case -20:&lt;br /&gt;                $sTexto1 = "Error en los parámetros pasados ancho (3º) ó alto(4º)";&lt;br /&gt;                $sTexto2 = "Los valores deben ser numéricos enteros o decimales";&lt;br /&gt;                break;&lt;br /&gt;            case -21:&lt;br /&gt;                $sTexto1 = "Error en los parámetros pasados ancho (3º) y alto(4º)";&lt;br /&gt;                $sTexto2 = "al menos uno de estos parámetros deben de ser positivos";&lt;br /&gt;                break;&lt;br /&gt;            default:&lt;br /&gt;                if ($iRetorno &lt; 0) $sTexto1 = "Error desconocido";&lt;br /&gt;                break;&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        if ($sTexto1 != ""){&lt;br /&gt;            $imagen = imagecreate (400, 40);&lt;br /&gt;            $cFondo = imagecolorallocate ($imagen, 255, 226, 169);&lt;br /&gt;            $cTexto = imagecolorallocate ($imagen, 153, 102, 0);&lt;br /&gt;            imagefilledrectangle ($imagen, 0, 0, 150, 30, $cFondo);&lt;br /&gt;            if ($sTexto2 == ""){&lt;br /&gt;                imagestring ($imagen, 3, 5, 15, $sTexto1, $cTexto);&lt;br /&gt;            }else{&lt;br /&gt;                imagestring ($imagen, 3, 5, 5, $sTexto1, $cTexto);&lt;br /&gt;                imagestring ($imagen, 3, 5, 20, $sTexto2, $cTexto);&lt;br /&gt;            }&lt;br /&gt;            &lt;br /&gt;            header("Content-type: image/png"); &lt;br /&gt;            imagepng($imagen);&lt;br /&gt;            imagedestroy($imagen);&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    $iError = iPintaImagenRedimensionada("imagen.jpg", TRUE, 0.5, -1, IMAGETYPE_JPEG);&lt;br /&gt;    ErrorPintaImagenRedimensionada ($iError)&lt;br /&gt;    &lt;br /&gt;?&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5375078233005583171-759918489476981903?l=todo-php.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://todo-php.blogspot.com/feeds/759918489476981903/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5375078233005583171&amp;postID=759918489476981903' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/759918489476981903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/759918489476981903'/><link rel='alternate' type='text/html' href='http://todo-php.blogspot.com/2007/07/cambiar-tamao-y-peso-de-imgenes.html' title='Cambiar tamaño y peso de imágenes'/><author><name>Juan Carlos Ganzo</name><uri>http://www.blogger.com/profile/01735226675540043291</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_F-X2CWNdRzY/RqpewwHQxzI/AAAAAAAAAAY/3_ARLeQeFd4/s200/02-07-06_1903.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5375078233005583171.post-5032443784100936572</id><published>2007-07-20T23:20:00.000-07:00</published><updated>2007-07-20T23:21:42.510-07:00</updated><title type='text'>Leer líneas de un archivo con la función file</title><content type='html'>Una de las múltiples formas y de las mas sencillas para recoger información de un archivo con PHP es con la función file, que además pasa el valor del fichero a un array siendo cada elemento del array una línea del archivo a abrir, lo que puede ser útil sobre todo si queremos buscar o trabajar sólo con algunas líneas.&lt;br /&gt;Puede recibir 2 parámetros (en la versión 5.0 puede recibir una tercera), de la siguiente forma:&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;span style="border: 1px solid rgb(0, 128, 0); padding: 3px; background-color: rgb(238, 238, 238);"&gt;$vLineas = file($sNombreArchivo, [iBuscarEnIncludes]);&lt;/span&gt;&lt;/center&gt; Donde &lt;b&gt;sNombreArchivo&lt;/b&gt; es la dirección del archivo a abrir, de forma absoluta ("http://www.tuweb.com/tudirectorio/tuarchivo.htm") o de forma relativa ("../tuarchivo.php") y &lt;b&gt;iBuscarEnIncludes&lt;/b&gt; es un valor entero optativo e indica si se busca el archivo en el directorio de includes (pasándole como valor 1) o no (pasándole como valor 0 o nada).&lt;br /&gt;&lt;br /&gt;El directorio de includes se define en el php.ini de la siguiente forma:&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;span style="border: 1px solid rgb(0, 128, 0); padding: 3px; background-color: rgb(238, 238, 238);"&gt;include_path="/directorio_de_includes/"&lt;/span&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5375078233005583171-5032443784100936572?l=todo-php.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://todo-php.blogspot.com/feeds/5032443784100936572/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5375078233005583171&amp;postID=5032443784100936572' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/5032443784100936572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/5032443784100936572'/><link rel='alternate' type='text/html' href='http://todo-php.blogspot.com/2007/07/leer-lneas-de-un-archivo-con-la-funcin.html' title='Leer líneas de un archivo con la función file'/><author><name>Juan Carlos Ganzo</name><uri>http://www.blogger.com/profile/01735226675540043291</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_F-X2CWNdRzY/RqpewwHQxzI/AAAAAAAAAAY/3_ARLeQeFd4/s200/02-07-06_1903.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5375078233005583171.post-6319470873194362029</id><published>2007-07-20T23:18:00.000-07:00</published><updated>2007-07-20T23:19:55.615-07:00</updated><title type='text'></title><content type='html'>&lt;p style="margin-right: 10px;" align="justify"&gt;En este artículo comentaremos como descomprimir los ficheros que hemos comprimido con las funciones de &lt;a href="http://www.mcanam.com/articulos/PHP.php?id=11" target="_blank"&gt;Compresión de ficheros con PHP a GZIP&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Este ejemplo descomprimiría un archivo con formato gzip comprimido mediante gzencode, o cualquier aplicación que comprima ficheros a gzip (como el comando gzip de Unix) y hace los siguientes pasos:&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Inicializa variables, la primera ($iTamMaxDestino) es el tamaño máximo del fichero descomprimido, si el tamaño del fichero resultante fuera mayor, se truncaría, la segunda ($sNombre) es el nombre alternativo del archivo descomprimido. En caso de que el archivo sea del tipo &lt;i&gt;nombre.ext.gz&lt;/i&gt; el nombre del fichero resultante sería &lt;i&gt;nombre.ext&lt;/i&gt; independientemente del valor de esta variable&lt;/li&gt;&lt;li&gt;Abre el fichero comprimido con gzopen / gzclose y recoge del fichero comprimido la cadena del fichero descomprimido con gzread&lt;/li&gt;&lt;li&gt;Vuelca el resultado en un fichero en el mismo directorio que el original&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Si el fichero que quisiéramos comprimir se hubiera creado con gzcompress ó gzdeflate, en vez de abrir el fichero como un fichero comprimido, deberíamos de abrirle en binario para recoger sus datos (realmente no es un fichero comprimido ya que le faltan las cabeceras indicadoras, realmente es un fichero con una cadena comprimida) y descomprimir estos con gzuncompress ó gzinflate según el caso, de forma que habría que reemplazar esta parte:&lt;br /&gt;&lt;br /&gt;$iTamMaxDestino = 4000000; // 4 Megas&lt;br /&gt;$sNombre = "McAnam.des"; &lt;br /&gt;        &lt;br /&gt;if ( ! $fOrigen = @gzopen($sFichOrigen, "rb")) &lt;br /&gt;    return false; &lt;br /&gt;$sDesBin = gzread($fOrigen, $iTamMaxDestino); &lt;br /&gt;gzclose($fOrigen); &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Para descomprimir un fichero comprimido con gzcompress:&lt;br /&gt;$sNombre = "McAnam.des";&lt;br /&gt;        &lt;br /&gt;if ( ! $fOrigen = @fopen($sFichOrigen, "rb"))&lt;br /&gt;    return false;&lt;br /&gt;$sOriGZ = fread($fOrigen, filesize($sFichOrigen));&lt;br /&gt;fclose($fOrigen);&lt;br /&gt;&lt;br /&gt;$sDesBin = gzuncompress($sOriGZ);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Para descomprimir un fichero comprimido con gzdeflate:&lt;br /&gt;&lt;br /&gt;$sNombre = "McAnam.des";&lt;br /&gt;        &lt;br /&gt;if ( ! $fOrigen = @fopen($sFichOrigen, "rb"))&lt;br /&gt;   return false;&lt;br /&gt;$sOriGZ = fread($fOrigen, filesize($sFichOrigen));&lt;br /&gt;fclose($fOrigen);&lt;br /&gt;&lt;br /&gt;$sDesBin = gzinflate($sOriGZ);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5375078233005583171-6319470873194362029?l=todo-php.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://todo-php.blogspot.com/feeds/6319470873194362029/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5375078233005583171&amp;postID=6319470873194362029' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/6319470873194362029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/6319470873194362029'/><link rel='alternate' type='text/html' href='http://todo-php.blogspot.com/2007/07/en-este-artculo-comentaremos-como.html' title=''/><author><name>Juan Carlos Ganzo</name><uri>http://www.blogger.com/profile/01735226675540043291</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_F-X2CWNdRzY/RqpewwHQxzI/AAAAAAAAAAY/3_ARLeQeFd4/s200/02-07-06_1903.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5375078233005583171.post-7686873090408964872</id><published>2007-07-20T23:16:00.000-07:00</published><updated>2007-07-20T23:17:06.230-07:00</updated><title type='text'>Acceso a un DB2 en un AS/400 con PHP (sobre Unix)</title><content type='html'>En el siguiente &lt;a href="http://www.recursos-as400.com/comoiserieslinux.shtml"&gt;enlace&lt;/a&gt; explican como acceder a una base de datos DB/2 en un AS/400 desde un linux. Esto lo hace mediante el ODBC para Unix. Sobra decir que esto lo podremos implementar sin grandes problemas en cualquier Unix.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5375078233005583171-7686873090408964872?l=todo-php.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://todo-php.blogspot.com/feeds/7686873090408964872/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5375078233005583171&amp;postID=7686873090408964872' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/7686873090408964872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/7686873090408964872'/><link rel='alternate' type='text/html' href='http://todo-php.blogspot.com/2007/07/acceso-un-db2-en-un-as400-con-php-sobre.html' title='Acceso a un DB2 en un AS/400 con PHP (sobre Unix)'/><author><name>Juan Carlos Ganzo</name><uri>http://www.blogger.com/profile/01735226675540043291</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_F-X2CWNdRzY/RqpewwHQxzI/AAAAAAAAAAY/3_ARLeQeFd4/s200/02-07-06_1903.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5375078233005583171.post-2656938236396477554</id><published>2007-07-20T23:15:00.003-07:00</published><updated>2007-07-20T23:15:59.748-07:00</updated><title type='text'>calculo de la edad de una persona con php</title><content type='html'>&lt;p&gt;Muchas veces se ha planteado el como calcular la edad de una persona (en años) ... de forma eficiente, amigo de los códigos "cuanto-mas-pequeños-mejor", he escrito este pequeño script ... que nos devuelve la fecha, funcionando sin problemas para cualquier fecha (incluyendo las anteriores al 1970). &lt;/p&gt; &lt;?php  $nacimiento = '20-06-1965';&lt;br /&gt;$aFecha = explode( '-', $nacimiento);&lt;br /&gt;$edad = floor(( (date("Y") - $aFecha[2] )  * 372 + ( date("m") - $aFecha[1] ) * 31 + Date("d" ) - $aFecha[0] )/372) ;&lt;br /&gt;?&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5375078233005583171-2656938236396477554?l=todo-php.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://todo-php.blogspot.com/feeds/2656938236396477554/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5375078233005583171&amp;postID=2656938236396477554' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/2656938236396477554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/2656938236396477554'/><link rel='alternate' type='text/html' href='http://todo-php.blogspot.com/2007/07/calculo-de-la-edad-de-una-persona-con.html' title='calculo de la edad de una persona con php'/><author><name>Juan Carlos Ganzo</name><uri>http://www.blogger.com/profile/01735226675540043291</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_F-X2CWNdRzY/RqpewwHQxzI/AAAAAAAAAAY/3_ARLeQeFd4/s200/02-07-06_1903.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5375078233005583171.post-8138012530279097930</id><published>2007-07-20T23:15:00.001-07:00</published><updated>2007-07-20T23:15:22.696-07:00</updated><title type='text'>Trabajar con sumas y restas de unidades de tiempo</title><content type='html'>P:&lt;b&gt;¿ Como obtener una fecha más una determinada cantidad de tiempo ?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;R: Esta linea nos muestra una fecha dentro de 30 días:&lt;br /&gt;&lt;code&gt;echo date('r', time() + (60 * 60 * 24 * 30) );&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5375078233005583171-8138012530279097930?l=todo-php.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://todo-php.blogspot.com/feeds/8138012530279097930/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5375078233005583171&amp;postID=8138012530279097930' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/8138012530279097930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/8138012530279097930'/><link rel='alternate' type='text/html' href='http://todo-php.blogspot.com/2007/07/trabajar-con-sumas-y-restas-de-unidades.html' title='Trabajar con sumas y restas de unidades de tiempo'/><author><name>Juan Carlos Ganzo</name><uri>http://www.blogger.com/profile/01735226675540043291</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_F-X2CWNdRzY/RqpewwHQxzI/AAAAAAAAAAY/3_ARLeQeFd4/s200/02-07-06_1903.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5375078233005583171.post-6017132671120774483</id><published>2007-07-20T23:13:00.000-07:00</published><updated>2007-07-20T23:14:46.793-07:00</updated><title type='text'>Cómo convertir correctamente a mayusculas los acentos</title><content type='html'>Para realizar una correcta conversión podemos utilizar el Setlocale();&lt;br /&gt;&lt;code&gt; setlocale(LC_CTYPE, 'es');&lt;br /&gt;echo strtoupper('áéíóú');&lt;br /&gt;&lt;/code&gt; Otra forma (si no disponemos de los tipos europeos) es sustituyendo con strtr&lt;br /&gt;&lt;code&gt; $cadena = 'más veloz que la imaginación';&lt;br /&gt;echo strtr(strtoupper($cadena),"àèìòùáéíóúçñäëïöü","ÀÈÌÒÙÁÉÍÓÚÇÑÄËÏÖÜ");&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5375078233005583171-6017132671120774483?l=todo-php.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://todo-php.blogspot.com/feeds/6017132671120774483/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5375078233005583171&amp;postID=6017132671120774483' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/6017132671120774483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/6017132671120774483'/><link rel='alternate' type='text/html' href='http://todo-php.blogspot.com/2007/07/cmo-convertir-correctamente-mayusculas.html' title='Cómo convertir correctamente a mayusculas los acentos'/><author><name>Juan Carlos Ganzo</name><uri>http://www.blogger.com/profile/01735226675540043291</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_F-X2CWNdRzY/RqpewwHQxzI/AAAAAAAAAAY/3_ARLeQeFd4/s200/02-07-06_1903.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5375078233005583171.post-6647792658424321975</id><published>2007-07-20T23:12:00.000-07:00</published><updated>2007-07-20T23:13:24.330-07:00</updated><title type='text'>Instalando PHP 5 y MySQL sobre Windows XP</title><content type='html'>&lt;p&gt;Configuración del servidor:&lt;/p&gt;&lt;br /&gt;&lt;div class="serendipity_entry_body"&gt;&lt;li&gt;Windows XP&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Apache 2.0.48&lt;br /&gt;&lt;/li&gt;&lt;li&gt;PHP 5.0 Beta 3 (con SAPI DLL php4apache2.dll ? PHP.ORG indica que el archivo se renombrará a php5apache2.dll cuando PHP 5 esté listo para producción)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;MySQL 4.0.16&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Pasos a seguir:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Después de la instalación y configuración inicial de PHP 5, copiar todas las DLL's del directorio de PHP 'dlls' al directorio system32 (principalmente libSQL.dll).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Verificar que el tamaño del fichero libSQL.dll es el mismo que el que tenía en el directorio 'dlls' de PHP 5 (esto es lo que comenta nuestro colega que le produjo algunos problemas - por algún motivo, la librería libmySQL.dll no se movió normalmente al directorio system32 - fue sobredimensionada por PHP 4 e hipodimensionada por PHP 5).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Asegurarse de que php_mysql.dll está en la carpeta de PHP 5 que contiene las extensiones.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Editar el fichero php.ini observando que php_mysql.dll en la sección donde están las extensiones, no esté comentado.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Se supone que de esta forma debería funcionar, sin embargo, si usas, como PHP.ORG ahora indica como 'antiguo estilo para las matrices de entrada' (por ejemplo, HTTP_GET_VARS o sus primas), necesitarás editar php.ini. Exactamente, tendrás que encontrar register_long_arrays y modificarlo el valor por defecto a ON.&lt;/p&gt;             &lt;/li&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5375078233005583171-6647792658424321975?l=todo-php.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://todo-php.blogspot.com/feeds/6647792658424321975/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5375078233005583171&amp;postID=6647792658424321975' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/6647792658424321975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/6647792658424321975'/><link rel='alternate' type='text/html' href='http://todo-php.blogspot.com/2007/07/instalando-php-5-y-mysql-sobre-windows.html' title='Instalando PHP 5 y MySQL sobre Windows XP'/><author><name>Juan Carlos Ganzo</name><uri>http://www.blogger.com/profile/01735226675540043291</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_F-X2CWNdRzY/RqpewwHQxzI/AAAAAAAAAAY/3_ARLeQeFd4/s200/02-07-06_1903.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5375078233005583171.post-7673680234361202018</id><published>2007-07-20T23:06:00.000-07:00</published><updated>2007-07-20T23:08:14.743-07:00</updated><title type='text'>Cookies con javascript</title><content type='html'>En muchas ocasiones resulta necesario asignar un valor a una cookie sin tener que usar la función setcookie().&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;echo '&lt;s_cript language="javascript"&gt;&lt;br /&gt;    document.cookie = "variable = valor" ;&lt;br /&gt;&lt;/s_cript&gt;';&lt;br /&gt;&lt;br /&gt;             &lt;br /&gt;&lt;br /&gt;Si quisiéramos usar variables de PHP, tanto para el nombre de la cookie como para su valor, sólo tendríamos que poner su contenido:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;echo '&lt;scri_pt language="javascript"&gt;&lt;br /&gt;    document.cookie = "'.$variable.' = '.$valor.'" ;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5375078233005583171-7673680234361202018?l=todo-php.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://todo-php.blogspot.com/feeds/7673680234361202018/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5375078233005583171&amp;postID=7673680234361202018' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/7673680234361202018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/7673680234361202018'/><link rel='alternate' type='text/html' href='http://todo-php.blogspot.com/2007/07/cookies-con-javascript.html' title='Cookies con javascript'/><author><name>Juan Carlos Ganzo</name><uri>http://www.blogger.com/profile/01735226675540043291</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_F-X2CWNdRzY/RqpewwHQxzI/AAAAAAAAAAY/3_ARLeQeFd4/s200/02-07-06_1903.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5375078233005583171.post-7403599720963526151</id><published>2007-07-20T23:02:00.000-07:00</published><updated>2007-07-20T23:06:10.340-07:00</updated><title type='text'>Formularios en PHP</title><content type='html'>&lt;span style=";font-family:Arial,Helvetica,sans-serif;font-size:100%;"  &gt;&lt;span style="font-family:Arial;"&gt;Muy bien este es un Ejemplo de un Formulario en PHP les sera muy util para todos aquellos que quieren que desde su web manden mensajes a su Mail&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Aqui les pongo un ejemplo que uso para leer checkbox/selecmultiples de un formulario:&lt;br /&gt;&lt;br /&gt;El selecmultiple/chebox debe ser formado (como supongo que ya haces):&lt;br /&gt;&lt;br /&gt;&lt;--! &lt; inpu_t name="seleccionados[]" value="$id" type="checkbox"&gt; -&gt;&lt;br /&gt;&lt;br /&gt;Y donde los necesitas leer:&lt;br /&gt;&lt;br /&gt;while (list ($clave, $val) = each ($HTTP_POST_VARS)) {&lt;br /&gt;&lt;br /&gt;if ($clave == "seleccionados"){&lt;br /&gt;&lt;br /&gt;foreach ($seleccionados as $id) {&lt;br /&gt;&lt;br /&gt;// aqui tienes cada elemento del seleccmultiple/chekbox por separado en la variable $id. Aqui mismo puedes hacer la accion a relizar con esos checkbox/selecmultiples.&lt;br /&gt;&lt;br /&gt;echo "IDs seleccionados: ".$id;&lt;br /&gt;&lt;br /&gt;} } }&lt;br /&gt;&lt;br /&gt;(sustitulle POST por GET segun corresponda el envio de los datos del formulario metodo).&lt;br /&gt;&lt;br /&gt;De todas formas .. como veras, solo se revisa el array asociado al metodo de envio y dentro de el .. se selecciona el array del checkbox/selecmultiple que al fin y al cabo es un array que puedes obtener su total de registros con la funcion: count() .. count($HTTP_POST_VARS['seleccionados'])&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5375078233005583171-7403599720963526151?l=todo-php.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://todo-php.blogspot.com/feeds/7403599720963526151/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5375078233005583171&amp;postID=7403599720963526151' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/7403599720963526151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/7403599720963526151'/><link rel='alternate' type='text/html' href='http://todo-php.blogspot.com/2007/07/formularios-en-php.html' title='Formularios en PHP'/><author><name>Juan Carlos Ganzo</name><uri>http://www.blogger.com/profile/01735226675540043291</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_F-X2CWNdRzY/RqpewwHQxzI/AAAAAAAAAAY/3_ARLeQeFd4/s200/02-07-06_1903.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5375078233005583171.post-6427737243445111155</id><published>2007-07-20T23:01:00.001-07:00</published><updated>2007-07-20T23:01:31.350-07:00</updated><title type='text'>Como mostrar la ip de un usuario</title><content type='html'>&lt;span style="font-family:Arial, Helvetica, sans-serif;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;Lo único que utilizaremos es $REMOTE_ADDR esta pequeña variable esta por default en el servidor a si que lo único que tenemos que hacer es lo siguiente:&lt;br /&gt;&lt;br /&gt;&lt;?&lt;br /&gt;//iniciamos&lt;br /&gt;echo&lt;br /&gt;//agregamos la variable echo para que nos ejecute el romte.&lt;br /&gt;$REMOTE_ADDR&lt;br /&gt;//agregamos la variable y cerramos&lt;br /&gt;?&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Y para que se vea bonito le agregamos una tabla:&lt;br /&gt;&lt;table width="21%" border="1" cellspacing="0" cellpadding="0" border style="color:#000000;"&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td border bg style="color:#999999;"&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:85%;"&gt;Tu&lt;br /&gt;ip es:&lt;br /&gt;&lt;br /&gt;&lt;?&lt;br /&gt;//iniciamos&lt;br /&gt;echo&lt;br /&gt;//agregamos la variable echo para que nos ejecute el remote.&lt;br /&gt;$REMOTE_ADDR&lt;br /&gt;//agregamos la variable y cerramos&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Bueno como pueden ver no es nada fuera de lo normal, demasiado fácil es solo utilizar el echo y el $REMOTE_ADDR&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5375078233005583171-6427737243445111155?l=todo-php.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://todo-php.blogspot.com/feeds/6427737243445111155/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5375078233005583171&amp;postID=6427737243445111155' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/6427737243445111155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/6427737243445111155'/><link rel='alternate' type='text/html' href='http://todo-php.blogspot.com/2007/07/como-mostrar-la-ip-de-un-usuario.html' title='Como mostrar la ip de un usuario'/><author><name>Juan Carlos Ganzo</name><uri>http://www.blogger.com/profile/01735226675540043291</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_F-X2CWNdRzY/RqpewwHQxzI/AAAAAAAAAAY/3_ARLeQeFd4/s200/02-07-06_1903.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5375078233005583171.post-5842610912205546</id><published>2007-07-20T23:00:00.001-07:00</published><updated>2007-07-20T23:00:49.004-07:00</updated><title type='text'>Como crear un buscador de palabras</title><content type='html'>&lt;p&gt;&lt;span style="font-family:Arial, Helvetica, sans-serif;font-size:85%;"&gt;    &lt;span style="font-family:Arial;font-size:85%;"&gt;Muchas páginas llevan su buscador propia de elementos dentro de la web. Cón este código se puede hacer un buscador senzillo que busca una palabra dentro de una Tabla con muchas noticias y cuando la encuentra las muestra por pantalla.&lt;br /&gt;&lt;br /&gt;La palabra o texto a buscar se lo enviamos desde otra página usando una variable que llamaremos $palabra.&lt;br /&gt;&lt;br /&gt;FORM ACTION="busca.php&gt;&lt;br /&gt;&lt;input type="TEXT" name="palabra"&gt;&lt;br /&gt;&lt;input type="SUBMIT" name="Buscar"&gt;"&lt;br /&gt;&lt;br /&gt;Busca.php&lt;br /&gt;&lt; ?&lt;br /&gt;$conexio = mysql_connect("nombre_servidor", "usuario", "contraseña");&lt;br /&gt;mysql_select_db ("nombre_BBDD", $conexio) OR die ("No se puede conectar");&lt;br /&gt;&lt;br /&gt;// SQL para la búsqueda&lt;br /&gt;$sql="SELECT * FROM documentos WHERE documento LIKE '%".$palabra."%' ";&lt;br /&gt;$result=mysql_query($sql,$conexio);&lt;br /&gt;// Si hay resultados crea una tabla y los muestra&lt;br /&gt;if ($row= mysql_fetch_array($result))&lt;br /&gt;{&lt;br /&gt;echo "&lt;table border="'0'"&gt;";&lt;br /&gt;DO&lt;br /&gt;{&lt;br /&gt;echo "$row["documento"]";&lt;br /&gt;}&lt;br /&gt;WHILE ($row=mysql_fetch_array($result));&lt;br /&gt;echo "&lt;/table&gt;";&lt;br /&gt;}&lt;br /&gt;mysql_close ($conexio);&lt;br /&gt;?&gt;&lt;/span&gt;  &lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5375078233005583171-5842610912205546?l=todo-php.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://todo-php.blogspot.com/feeds/5842610912205546/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5375078233005583171&amp;postID=5842610912205546' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/5842610912205546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/5842610912205546'/><link rel='alternate' type='text/html' href='http://todo-php.blogspot.com/2007/07/como-crear-un-buscador-de-palabras.html' title='Como crear un buscador de palabras'/><author><name>Juan Carlos Ganzo</name><uri>http://www.blogger.com/profile/01735226675540043291</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_F-X2CWNdRzY/RqpewwHQxzI/AAAAAAAAAAY/3_ARLeQeFd4/s200/02-07-06_1903.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5375078233005583171.post-5624031512908363244</id><published>2007-07-20T22:55:00.000-07:00</published><updated>2007-07-20T22:59:43.876-07:00</updated><title type='text'>Posible problema con los Themes (PHPNuke)</title><content type='html'>&lt;span style="font-family: verdana;font-size:85%;" &gt;Probando varios Themes he tenido un problema con alguno de ellos, por ejemplo con el NGI y el aqua3, todo funciona perfectamente, pero en la página inicial las noticias no se mostraban daba el siguiente error:&lt;br /&gt;"Fatal error: Call to undefined function: formataidheader() in c:apachehtdocs hemesNGI heme.php on line 185"&lt;br /&gt;Solo salía el título "Enviado por", en el servidor local daba....fallo y en el de lycos salía el usuario en línea encima de las noticias y cuando le dabas a comentarios salía otro fallo. Pues aquí está el problema, lógicamente veo que falta la función "formataidheader" pero ¿Donde esta esa función?.&lt;br /&gt;Estuve investigando, anoche, el código del Theme y me di cuenta de que había una diferencia con los Themes originales que vienen con el Nuke, el fallo era:&lt;br /&gt;En las funciones "themeindex" y "themearticle" hay una línea que pone "$posted .=formatAidHeader($aid);" y justamente esta es la línea que da problemas, por que esa función no existe, si cambiamos esas líneas por "$posted .=get_author ($aid);" se acabaron los problemas.&lt;br /&gt;Lo he probado en PHP-Nuke 5.6, tanto en local como en el server de lycos y funciona perfectamente, no creo que tenga problemas en la 6.0.&lt;br /&gt;Espero que sirva de ayuda para alguien. Saludos.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5375078233005583171-5624031512908363244?l=todo-php.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://todo-php.blogspot.com/feeds/5624031512908363244/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5375078233005583171&amp;postID=5624031512908363244' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/5624031512908363244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/5624031512908363244'/><link rel='alternate' type='text/html' href='http://todo-php.blogspot.com/2007/07/posible-problema-con-los-themes-phpnuke.html' title='Posible problema con los Themes (PHPNuke)'/><author><name>Juan Carlos Ganzo</name><uri>http://www.blogger.com/profile/01735226675540043291</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_F-X2CWNdRzY/RqpewwHQxzI/AAAAAAAAAAY/3_ARLeQeFd4/s200/02-07-06_1903.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5375078233005583171.post-5131071229901729232</id><published>2007-07-20T22:53:00.000-07:00</published><updated>2007-07-20T22:54:28.029-07:00</updated><title type='text'>Como recobrar la extensión de un fichero</title><content type='html'>&lt;code&gt;&lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;&lt;--! &lt;?php&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;function &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;getext&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$filename&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) {&lt;br /&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$ext &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;= &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;substr&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$filename&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;, &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;strrpos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$filename&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"."&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) + &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt; return &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$ext&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;// $filename = miarchivo.jpg;&lt;br /&gt;// $extension = getext($filename);&lt;br /&gt;// $extension == jpg&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;?&gt;  --&gt;&lt;/span&gt; &lt;/span&gt;&lt;/code&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5375078233005583171-5131071229901729232?l=todo-php.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://todo-php.blogspot.com/feeds/5131071229901729232/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5375078233005583171&amp;postID=5131071229901729232' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/5131071229901729232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5375078233005583171/posts/default/5131071229901729232'/><link rel='alternate' type='text/html' href='http://todo-php.blogspot.com/2007/07/como-recobrar-la-extensin-de-un-fichero.html' title='Como recobrar la extensión de un fichero'/><author><name>Juan Carlos Ganzo</name><uri>http://www.blogger.com/profile/01735226675540043291</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_F-X2CWNdRzY/RqpewwHQxzI/AAAAAAAAAAY/3_ARLeQeFd4/s200/02-07-06_1903.jpg'/></author><thr:total>0</thr:total></entry></feed>
