<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Diario de Programación &#187; php</title>
	<atom:link href="http://blog.chuidiang.com/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.chuidiang.com</link>
	<description>Programación e informática en general</description>
	<lastBuildDate>Wed, 25 Jan 2012 23:17:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Subir ficheros al servidor con JSP</title>
		<link>http://blog.chuidiang.com/2011/03/25/subir-ficheros-al-servidor-con-jsp/</link>
		<comments>http://blog.chuidiang.com/2011/03/25/subir-ficheros-al-servidor-con-jsp/#comments</comments>
		<pubDate>Fri, 25 Mar 2011 08:30:05 +0000</pubDate>
		<dc:creator>Chuidiang</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[file upload]]></category>
		<category><![CDATA[jsp]]></category>
		<category><![CDATA[tomcat]]></category>

		<guid isPermaLink="false">http://blog.chuidiang.com/?p=891</guid>
		<description><![CDATA[&#160;Dentro de la aplicaci&#243;n web que estamos haciendo, tenemos que permitir al usuario subir ficheros al servidor. S&#233; c&#243;mo se suben ficheros al servidor en PHP, pero nunca lo hab&#237;a hecho con JSP. Pens&#233; que ser&#237;a similar, pero me he encontrado con algunas sorpresas. La primera sorpresa ha sido buscando en google. Unas b&#250;squedas r&#225;pidas [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;Dentro de la aplicaci&oacute;n web que estamos haciendo, tenemos que permitir al usuario subir ficheros al servidor. S&eacute; <a href="http://chuwiki.chuidiang.org/index.php?title=Upload_con_php_y_Apache">c&oacute;mo se suben ficheros al servidor en PHP</a>, pero nunca lo hab&iacute;a hecho con JSP. Pens&eacute; que ser&iacute;a similar, pero me he encontrado con algunas sorpresas.</p>
<p>La primera sorpresa ha sido buscando en google. Unas b&uacute;squedas r&aacute;pidas no me ha dado ning&uacute;n resultado en el que se suba el fichero sin necesidad de librer&iacute;as adicionales. Pens&eacute; que ser&iacute;a igual que con Apache/PHP, el servidor sube el fichero a una carpeta temporal y una variable le indica a nuestra aplicaci&oacute;n PHP d&oacute;nde est&aacute;. En Tomcat/JSP parece ser que no es as&iacute;. Insisto, quiz&aacute;s s&iacute;, pero no he buscado en profundidad.</p>
<p>Todos los resultados de google que he visto hacen referencia a que hay que usar alguna librer&iacute;a externa, como <a href="http://commons.apache.org/fileupload/">apache-commons-fileupload</a>. As&iacute; que me puse a ello, usando esa librer&iacute;a.</p>
<p>La segunda pega es que al ser el form de html enctype=&quot;multipart/form-data&quot;, necesario para poder subir un fichero, en la parte del servidor JSP dejan de funcionar los request.getParameter(), siempre devuelve null. Resulta que si el request es multipart/form-data, hay que tratarlo de otra manera. Este asunto me ha llamado la atenci&oacute;n y le ha hecho perder un puntito a JSP frente a PHP (o a Tomcat frente a Apache, no s&eacute; qui&eacute;n es el culpable), donde parece que &nbsp;no hay esos problemas.</p>
<p>&iquest;Y c&oacute;mo se leen entonces los par&aacute;metros de la petici&oacute;n?. Pues nuevamente una b&uacute;squeda r&aacute;pida en google parece indicar que la &uacute;nica soluci&oacute;n es usar librer&iacute;as externas y en concreto, la misma apache-commons-fileupload. Con esa librer&iacute;a se &quot;parsea&quot; la petici&oacute;n y obtenemos una lista de FileItem. Cada uno de ellos puede ser un fichero al que se ha hecho upload&#8230;. &iexcl;&iexcl; o uno de los par&aacute;metros !!. Llamando a los m&eacute;todo getFieldName() y getString() (comprobando previamente si es par&aacute;metro o fichero) de esos FileItem obtenemos los valores.</p>
<p>En fin, algo que me ha parecido rebuscado y demasiado complejo frente a c&oacute;mo se hace en PHP/Apache. Un peque&ntilde;o tutorial de esto en la chuwiki: <a href="http://chuwiki.chuidiang.org/index.php?title=File_upload_con_JSP&amp;diff=4180&amp;oldid=prev">File Upload con JSP</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chuidiang.com/2011/03/25/subir-ficheros-al-servidor-con-jsp/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Bicicletas a la carta</title>
		<link>http://blog.chuidiang.com/2010/06/17/bicicletas-a-la-carta/</link>
		<comments>http://blog.chuidiang.com/2010/06/17/bicicletas-a-la-carta/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 19:46:44 +0000</pubDate>
		<dc:creator>Chuidiang</dc:creator>
				<category><![CDATA[varios]]></category>
		<category><![CDATA[bicicleta]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[proyectos]]></category>

		<guid isPermaLink="false">http://blog.chuidiang.com/?p=807</guid>
		<description><![CDATA[&#160;Soy aficionado a salir en bicicleta los domingos y llevo varios a&#241;os haci&#233;ndolo. Pero a diferencia de otros muchos aficionados, no soy en absoluto aficionado a la bicicleta en s&#237; misma. Cuando llego de uno de mis paseos, la cuelgo en la terraza y me olvido de ella hasta el siguiente Domingo. No la engraso, [...]]]></description>
			<content:encoded><![CDATA[<p><img alt="bici embarrada" width="400" height="300" border="10" align="right" src="http://lh4.ggpht.com/_RJl_J8Zl0PI/SXN6y6xJRNI/AAAAAAAAAh4/LarOshR9sw4/s800/IMG_3515.JPG" />&nbsp;Soy aficionado a <a href="http://fjballena.blogspot.com/">salir en bicicleta los domingos</a> y llevo varios a&ntilde;os haci&eacute;ndolo. Pero a diferencia de otros muchos aficionados, no soy en absoluto aficionado a la bicicleta en s&iacute; misma. Cuando llego de uno de mis paseos, la cuelgo en la terraza y me olvido de ella hasta el siguiente Domingo. No la engraso, ni la limpio, ni la miro. En cuanto tengo cualquier problema m&aacute;s all&aacute; de un pinchazo, suelo llevarla a una tienda de bicis de barrio. El due&ntilde;o es muy amable y se ha ganado mi confianza desde la primera vez que fui por la tienda, despu&eacute;s de llevarme un cabreo con los del <a href="http://www.decathlon.es/">Decathlon</a>.</p>
<p>En cierta ocasi&oacute;n vi que la tienda ten&iacute;a una p&aacute;gina web, as&iacute; que en una de mis visitas se lo coment&eacute;. El due&ntilde;o me dijo que no andaba muy contento con los que se la hab&iacute;an hecho y que si yo sab&iacute;a algo de eso, que le hiciera un presupuesto para llevarle yo la p&aacute;gina web. Bueno, no es lo m&iacute;o, s&oacute;lo llevo la m&iacute;a por hobby, tampoco soy aut&oacute;nomo as&iacute; que no podr&iacute;a darle factura y encima soy vago. Una cosa es &quot;jugar&quot; con mi p&aacute;gina web cuando tengo ganas y otra es comprometerme a algo. As&iacute; que lo dej&eacute; correr. De esto debe hacer ya cerca de dos a&ntilde;os.</p>
<p>Pero hace poco volv&iacute; a visitar la web y vi cosas que no me gustaron nada. Enlaces internos rotos, fotos que no salen y la p&aacute;gina muy parada, en dos a&ntilde;os apenas hab&iacute;a nada nuevo. As&iacute; que le env&iacute;e un correo al due&ntilde;o dici&eacute;ndole que pod&iacute;a arreglarle la p&aacute;gina y que siempre que fueran cosas puntuales y sin mucho trabajo, no le cobrar&iacute;a. Me conformar&iacute;a con alg&uacute;n descuento/regalo en los arreglos que me fuera haciendo en la bici. Vaya, un trueque. As&iacute; que quedamos para un caf&eacute; &#8230; y me llamaron la atenci&oacute;n varias cosas.</p>
<p>Lo primero es &quot;hacer negocios&quot; con gente de un negocio totalmente distinto al tuyo. Si le pregunto con qui&eacute;n tiene contratado el dominio y el hosting o c&oacute;mo accede al panel de control, pues pone la misma cara que cuando &eacute;l me comenta a m&iacute; que en una bici a medida se seleccionan unos treinta tipos de piezas y que <a href="http://bitacora1001.blogspot.com/2009/05/la-junta-de-la-trocola.html">la junta de la tr&oacute;cola</a> no forma parte de ellas.</p>
<p>Y por otro lado, yo iba con mi idea de arreglarle un poco la p&aacute;gina, ponerle un os-commerce para que tuviera un carrito de la compra o incluso un foro en el que la gente pudiera preguntarle on-line si tiene tal o cual pieza, cu&aacute;nto tardar&iacute;a en conseguirla o el precio. Pues bien, no tiene tiempo para atender el foro adecuadamente y lo del os-commerce le da igual porque casi todas las tiendas de bicis tienen y el que compra on-line al final se va al m&aacute;s barato, que suele ser alguna gran superficie. El lo que quer&iacute;a es algo que muy pocas tiendas de bicis tienen y es que un cliente pueda hacerse una bicicleta a medida, eligiendo las piezas del cat&aacute;logo y hacer el pedido sobre ello. Es m&aacute;s, tampoco quiere que esa aplicaci&oacute;n est&eacute; abierta al p&uacute;blico en general, sino que s&oacute;lo puedan acceder ciertos usuarios a los que &eacute;l d&eacute; de alta y que hayan pasado previamente por la tienda, es decir, clientes conocidos.</p>
<p>As&iacute; que me pareci&oacute; entretenido y a ello me he puesto. Llevo ya un par de semanas a ratos libres desempolvando mi php y me he creado <a href="http://github.com/chuidiang/Bicis-a-la-carta">un proyecto de bicis a la carta en GitHub</a>, donde he subido una primera versi&oacute;n, m&aacute;s o menos funcional, pero todav&iacute;a con faltantes y algunos ideas pendientes. A la vuelta del verano le llevar&eacute; mi bici para que le haga una revisi&oacute;n general <a href="http://picasaweb.google.es/chuidiang/BarroYNieve#slideshow/5292707981511345938">por debajo del barro</a> que tiene acumulado desde el invierno.</p>
<p>Por cierto, entiendo que s&oacute;lo le interesen esos pocos clientes conocidos que &quot;suelen&quot; comprarle bicis a medida. Jugando con la aplicaci&oacute;n y un cat&aacute;logo real, haciendo bicis de forma aleatoria, no me ha bajado ning&uacute;n precio de los 2000 &euro;.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chuidiang.com/2010/06/17/bicicletas-a-la-carta/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>¿JSP o PHP?</title>
		<link>http://blog.chuidiang.com/2009/04/23/%c2%bfjsp-o-php/</link>
		<comments>http://blog.chuidiang.com/2009/04/23/%c2%bfjsp-o-php/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 18:48:58 +0000</pubDate>
		<dc:creator>Chuidiang</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[jsp]]></category>
		<category><![CDATA[servlets]]></category>

		<guid isPermaLink="false">http://blog.chuidiang.com/?p=564</guid>
		<description><![CDATA[&#160; Esta es una pregunta bastante habitual en la gente que empieza a hacer aplicaciones web o, incluso en la gente que ya lleva tiempo en uno de esos dos lenguajes y se plantea si merece la pena pasarse al otro. No pretendo aqu&#237; dar una relaci&#243;n exhaustiva de los pros y contras de cada [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>Esta es una pregunta bastante habitual en la gente que empieza a hacer aplicaciones web o, incluso en la gente que ya lleva tiempo en uno de esos dos lenguajes y se plantea si merece la pena pasarse al otro. No pretendo aqu&iacute; dar una relaci&oacute;n exhaustiva de los pros y contras de cada uno de ellos, pero s&iacute; algunos de los puntos que considero importantes a la hora de decidirse.</p>
<p><strong>Librer&iacute;as disponibles</strong></p>
<p>Tanto un lenguaje como otro tienen much&iacute;simas librer&iacute;as disponibles para hacer un mont&oacute;n de cosas. JSP/Java tienes bastantes m&aacute;s, pero tambi&eacute;n es un lenguaje multi-prop&oacute;sito, por lo que muchas de ellas no nos servir&aacute;n para nada en una aplicaci&oacute;n web. PHP est&aacute; m&aacute;s pensado para web y todas sus librer&iacute;as son &uacute;tiles para web. Por ello, lo &uacute;nico que debemos tener en cuenta en este punto concreto es qu&eacute; librer&iacute;as vamos a necesitar para nuestras aplicaciones y si las tenemos disponibles en el lenguaje que vayamos a elegir. En su defecto, qu&eacute; nos costar&iacute;a desarrollar esa misma librer&iacute;a.</p>
<p><strong>Hospedaje en el servidor</strong></p>
<p>La aplicaci&oacute;n web debe ir en un servidor. Normalmente es m&aacute;s f&aacute;cil encontrar servidor PHP con base de datos gratuitos que servidores que ofrezcan JSP/Servlets gratuitos. Si vamos a los de pago, tambi&eacute;n es m&aacute;s f&aacute;cil y barato encontrar servidores PHP. Por ello, si el coste es un problema, posiblemente PHP sea mejor opci&oacute;n.</p>
<p>Si nuestra aplicaci&oacute;n web est&aacute; pensada para que la gente en general la use y la instale en sus servidores (por ejemplo, un blog estilo wordpress, una wiki estilo Mediawiki, etc), tambi&eacute;n tendr&aacute; m&aacute;s aceptaci&oacute;n posiblemente si la hacemos en PHP, ya que de todos esos posibles webmaster que queremos que usen nuestra aplicaci&oacute;n, la mayor&iacute;a tendr&aacute;n PHP pero no JSP.</p>
<p>Si nuestra aplicaci&oacute;n es para uso particular en una empresa o en casa y el servidor nos lo vamos a montar nosotros mismos, en principio no hay ning&uacute;n problema con un lenguaje u otro. Es pr&aacute;cticamente igual de f&aacute;cil instalar, por ejemplo, un servidor Apache con PHP que un servidor Tomcat para JSP/Servlets.</p>
<p><strong>La aplicaci&oacute;n y el lenguaje en s&iacute; mismos</strong></p>
<p>Entre los lenguajes Java y PHP hay una diferencia que considero fundamental. El primero es tipado, es decir, hay que declarar los tipos de las variables, los par&aacute;metros de los m&eacute;todos, etc, etc. En PHP no hay tipado, se pueden usar las variables sobre la marcha y pueden contener cualquier cosa en momentos distintos de la ejecuci&oacute;n. Java es 100% orientado a objetos, mientras que PHP permite mezclar clases con funciones de programaci&oacute;n estructurada. Esta diferencia hace que seg&uacute;n el tipo de aplicaci&oacute;n, sea mejor un lenguaje u otro.</p>
<p>Si nuestra aplicaci&oacute;n es una aplicaci&oacute;n puramente web, en la que principalmente hay presentaci&oacute;n en navegador y transacciones con una base de datos, en la que van a participar un n&uacute;mero de desarrolladores no muy grande y el tiempo de desarrollo no muy largo, PHP puede ser una buena opci&oacute;n.</p>
<p>Sin embargo, en aplicaciones muy grandes, en la que pueda haber m&aacute;s c&oacute;digo/algor&iacute;tmica aparte de lo estrictamente presentaci&oacute;n en navegador y transacciones en base de datos, va a haber muchos desarrolladores y tiene un tiempo de desarrollo largo, es mejor usar JSP/Servlets.</p>
<p>Y explico el motivo. Una funci&oacute;n PHP puede parecerse a esto</p>
<blockquote>
<p>function la_funcion ($el_parametro) {<br />
&nbsp;&nbsp; $el_resultado = &#8230;.<br />
&nbsp;&nbsp; return $el_resultado<br />
}</p>
</blockquote>
<p>mientras que un m&eacute;todo similar en Java puede ser como este</p>
<blockquote>
<p>public TipoResultado laFuncion (TipoParametro elParametro) {<br />
&nbsp;&nbsp; TipoResultado resultado = &#8230;;<br />
&nbsp;&nbsp; return resultado;<br />
}</p>
</blockquote>
<p>Mientras estamos codificando y con el c&oacute;digo en la cabeza, casi da igual una cosa que otra. Pero si ese c&oacute;digo no lo he hecho yo y tengo que mantenerlo o usarlo, o lo he hecho yo pero hace unas semanas, el c&oacute;digo PHP no ayuda en absoluto a saber qu&eacute; tipo de par&eacute;metro hay que pasar o qu&eacute; devuelve (ni siquiera si devuelve algo), habr&iacute;a que leer el c&oacute;digo interno de la funci&oacute;n con detalle. El c&oacute;digo Java, sin embargo, deja claro qu&eacute; tipo espera como par&aacute;metro y qu&eacute; devuelve, as&iacute; que quiz&aacute;s no tengamos que mirar el c&oacute;digo interno del m&eacute;todo para usarlo.</p>
<p>El no saber los tipos de entrada/salida puede resolverse con una disciplina estricta y comentarios adecuados, pero recuerda, estamos hablando de un grupo de desarrolladores grande. En un grupo grande, siempre hay&nbsp; <a href="http://blog.chuidiang.com/2009/02/24/es-imposible-hacer-buen-software/">un porcentaje importante de ellos que ser&aacute; poco disciplinado/novatos</a> y pondr&aacute;n <a href="http://www.dosideas.com/entretenimientos/520-los-comentarios-mas-graciosos-en-el-codigo-fuente.html">comentarios graciosos</a>.</p>
<p>Hay adem&aacute;s otras dos ventajas fundamentales en los lenguajes tipados:</p>
<ol>
<li>Los IDE tienen un autocompletar mucho mejor. Cualquier IDE de java moderno, pones la variable, un punto y te saca los posibles m&eacute;todos/atributos a los que puedes llamar. Un buen IDE de PHP lo intentar&aacute;, pero no siempre lo conseguir&aacute;. En el ejemplo anterior, si en java escribimos elParametro., el IDE nos pondr&aacute; los posibles m&eacute;todos porque sabe que elParametro es de tipo TipoParametro. En PHP, poniendo el_parametro-&gt;, el IDE no nos puede poner absolutamente nada, porque no sabe de qu&eacute; tipo es eso.</li>
<li>Precisamente por eso y por la necesidad de declarar los tipos, un IDE no nos dejar&aacute;, por ejemplo, llamar a un m&eacute;todo que no existe o asignar a una variable no declarada. PHP s&iacute; nos dejar&aacute; hacerlo o nos dejar&aacute;, por ejemplo, poner $nuemro (me he equivocado a posta, en vez de $numero he puesto $nuemro) y declarar sin querer una nueva variable. Todo esto fallar&aacute;, si tenemos suerte, cuando hagamos nuestra ejecuci&oacute;n. Pero si no tenemos suerte, errores de este tipo no saltar&aacute;n al ejecutar, el programa s&iacute;mplemente no dar&aacute; el resultado esperado y perderemos horas de depuraci&oacute;n. En java directamente no compilar&aacute; y el IDE nos cantar&aacute; el error en cuanto lo escribamos.</li>
</ol>
<p>As&iacute; que si la aplicaci&oacute;n es grande y con muchos desarrolladores, es posiblemente mejor usar un lenguaje tipado.</p>
<p><strong>Gustos personales</strong></p>
<p>Finalmente, c&oacute;mo no, los gustos personales de cada uno, las prisas, ganas de aprender, etc. Alquien puede tener preferencia por uno de los lenguajes, o bien ser el que domina y no querer meterse en el otro, o bien todo lo contrario, querer meterse para aprender. Si vas a hacer una aplicaci&oacute;n web sencilla, pero dominas java, tienes prisa en hacerla y te importa tres pepinos PHP, posiblemente la hagas en JSP, aunque alguien que domine PHP quiz&aacute;s tardar&iacute;a menos en hacerla en PHP.</p>
<p><strong>En resumen</strong></p>
<p>Supongo que al menos parte de estas razones son las causas principales por el que en el ambiente de internet al p&uacute;blico, la mayor&iacute;a de las aplicaciones son PHP (wordpress, mediawiki, etc), mientras que las aplicaciones JSP/Servlets se quedan m&aacute;s para ambientes empresariales o intranets. Ojo, hay cosas de ambos tipos en ambos ambientes, s&iacute;mplemente estoy indicando lo que parece ser mayor&iacute;a.</p>
<p>&iquest;A alguien se le ocurren m&aacute;s motivos a tener en cuenta?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chuidiang.com/2009/04/23/%c2%bfjsp-o-php/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>sitemap para SMF</title>
		<link>http://blog.chuidiang.com/2008/04/25/sitemap-para-smf/</link>
		<comments>http://blog.chuidiang.com/2008/04/25/sitemap-para-smf/#comments</comments>
		<pubDate>Fri, 25 Apr 2008 04:34:13 +0000</pubDate>
		<dc:creator>Chuidiang</dc:creator>
				<category><![CDATA[google]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[foro]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[sitemap]]></category>
		<category><![CDATA[smf]]></category>

		<guid isPermaLink="false">http://blog.chuidiang.com/2008/04/25/sitemap-para-smf/</guid>
		<description><![CDATA[Hace tiempo coment&#233; en un post que el foro SMF es un desastre para que lo indexe google y, de hecho, no aparec&#237;a en google ninguno de los temas de mi foro de java. Intent&#233; instalar el plugin seo4smf para tratar de arreglarlo, pero no consegu&#237; que me funcionara. Al final, como coment&#233; en aquel [...]]]></description>
			<content:encoded><![CDATA[<p>Hace tiempo coment&eacute; en un post que <a href="http://blog.chuidiang.com/2008/03/25/indexado-en-google-del-foro-smf/">el foro SMF es un desastre para que lo indexe google</a> y, de hecho, no aparec&iacute;a en google ninguno de los temas de mi <a href="http://foro.chuidiang.com">foro de java</a>. Intent&eacute; instalar el plugin <a href="http://custom.simplemachines.org/mods/index.php?mod=518">seo4smf</a> para tratar de arreglarlo, pero no consegu&iacute; que me funcionara. Al final, como coment&eacute; en aquel post, me hice un peque&ntilde;o programa java que generara un fichero sitemap.xml para colgarlo en el foro.</p>
<p>Esa opci&oacute;n no era buena del todo. Consegu&iacute; que google indexara los temas del foro, pero ten&iacute;a que actualizar el sitemap peri&oacute;dicamente a mano. As&iacute; que decid&iacute; hacerme un peque&ntilde;o script sitemap.php que hiciera de sitemap para google de forma autom&aacute;tica.</p>
<p>Este script, al llamarlo, consulta en la base de datos el campo id_topic de la tabla smf_topics. Es la &uacute;nica informaci&oacute;n que necesita para generar el fichero XML de sitemap. El script dice que devuelve un &quot;Content-Type : application/xml&quot; para que cuando google lo consulte piense que es un fichero XML, luego env&iacute;a los tags XML correspondientes al sitemap.</p>
<p>Adjunto el c&oacute;digo php por si a alguien le interesa</p>
<blockquote>
<p>&lt;?php<br />
header(&#8216;Content-Type: application/xml&#8217;);<br />
include (&#8216;Settings.php&#8217;);</p>
<p>print (&#8216;&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#8217;);<br />
print (&#8216;&lt;urlset xmlns=&quot;http://www.sitemaps.org/schemas/sitemap/0.9&quot;&gt;&#8217;);</p>
<p>$link = mysql_connect ($db_server, $db_user, $db_passwd) or die (&quot;&lt;center&gt;No se puede conectar con la base de datos\n&lt;/center&gt;\n&quot;);<br />
$query=&#8217;select id_topic from smf_topics&#8217;;<br />
$result=mysql_db_query ($db_name, $query, $link);</p>
<p>while ($row = mysql_fetch_array ($result))<br />
{<br />
&nbsp;&nbsp; print (&#8216;&lt;url&gt;&#8217;);<br />
&nbsp;&nbsp; print (&#8216;&lt;loc&gt;&#8217;);<br />
&nbsp;&nbsp; print (&#8216;http://foro.chuidiang.com/index.php?topic=&#8217;.$row[0]);<br />
&nbsp;&nbsp; print (&#8216;&lt;/loc&gt;&#8217;);<br />
&nbsp;&nbsp; print (&#8216;&lt;/url&gt;&#8217;);<br />
}<br />
mysql_free_result($result);<br />
print (&#8216;&lt;/urlset&gt;&#8217;);<br />
?&gt;
</p>
</blockquote>
<p>El include &quot;Settings.php&quot; &uacute;nicamente incluye un fichero de configuraci&oacute;n del foro, en el que est&aacute;n las variables con el nombre de la base de datos $db_name, el usuario $db_user y la password $db_passwd. Ojo, no le busqueis pegas, que las tiene. Yo no tengo ni idea de PHP.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chuidiang.com/2008/04/25/sitemap-para-smf/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>

