<?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>Basmati Tree &#187; 2008 &#187; maggio</title>
	<atom:link href="http://www.basmatitree.net/2008/05/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.basmatitree.net</link>
	<description>nerdish recipes for a better tomorrow</description>
	<lastBuildDate>Tue, 19 May 2009 09:31:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>PHP &amp; UTF-8: qualche indicazione utile</title>
		<link>http://www.basmatitree.net/2008/05/20/php-utf8-qualche-indicazione-utile/</link>
		<comments>http://www.basmatitree.net/2008/05/20/php-utf8-qualche-indicazione-utile/#comments</comments>
		<pubDate>Tue, 20 May 2008 21:08:38 +0000</pubDate>
		<dc:creator>Palicao</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[cheatsheet]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[utf-8]]></category>

		<guid isPermaLink="false">http://www.basmatitree.net/?p=13</guid>
		<description><![CDATA[Una delle grandi carenze di PHP è il supporto della codifica UTF8. Questo significa che gran parte delle funzioni (in particolare quelle che agiscono su stringhe) potrebbero dare risultati inaspettati quando gli si passano come parametri stringhe multi-byte. Quindi bisogna prestare attenzione ad alcuni particolari nella realizzazione di un sito multilingua in PHP e MySQL.
In [...]]]></description>
			<content:encoded><![CDATA[<p>Una delle grandi carenze di PHP è il supporto della codifica UTF8. Questo significa che gran parte delle funzioni (in particolare quelle che agiscono su stringhe) potrebbero dare risultati inaspettati quando gli si passano come parametri stringhe multi-byte. Quindi bisogna prestare attenzione ad alcuni particolari nella realizzazione di un sito multilingua in PHP e MySQL.</p>
<p>In attesa della versione 6 di PHP che dovrebbe supportare nativamente la codifica UTF8, ecco qualche indicazione utile a tal proposito.</p>
<h3>I file e il bug del BOM</h3>
<p>Salva tutti i file che compongono l&#8217;applicazione (sia template che script PHP) in utf-8. Ho sentito parlare di un <a title="PHP BOM bug" href="http://bugs.php.net/bug.php?id=22108" target="_blank">bug</a> connesso alla presenza o meno del BOM (<a title="Byte Order Mark su Wikipedia" href="http://it.wikipedia.org/wiki/Byte_Order_Mark" target="_blank">Byte Order Mark</a>) all&#8217;inizio del file. Su Windows usando Ultra-Edit o Eclipse non ho mai sperimentato il problema, quindi se pensi che la tua applicazione dia il famoso errore &#8220;headers already sent&#8221; per questo motivo, passa ad uno di questi editor.</p>
<p>Puoi continuare a salvare i css e i javascript in formato ASCII, anche per risparmiare qualche byte, a meno che non pensi di includere delle stringhe multi-byte nel javascript.</p>
<h3>I dati</h3>
<p>Ricorda di creare i database, le tabelle e i campi in MySQL con <em>character set</em> utf8 e <em>collation </em>utf_8_general_ci. Questo può essere fatto molto facilmente se si usano strumenti come PhpMyAdmin, perchè per ognuna di queste operazioni viene data la possibilità di specificare la <em>collation</em>.</p>
<h3>La connessione</h3>
<p>Accertati che la connessione tra PHP e MySQL avvenga nel giusto formato. Pertanto, appena effettuata la connessione, esegui sempre la seguente query:</p>
<pre><em><span style="font-style: normal;">SET CHARACTER SET utf8</span>
</em></pre>
<h3>Gli headers HTTP</h3>
<p>Prima di qualsiasi output nello script, assicurati che anche la connessione HTTP avvenga in utf-8, eseguendo il seguente comando:</p>
<pre>header('Content-type: text/html; charset=utf-8');</pre>
<p>E&#8217; consigliabile, poi, ripetere l&#8217;informazione anche all&#8217;interno della pagina HTML stessa, includendo nell&#8217;<em>head </em>la riga:</p>
<pre>&lt;meta http-equiv="Content-type" value="text/html; charset=UTF-8" /&gt;</pre>
<p>Questo ovviamente nel caso più comune, ossia se l&#8217;output dello script è HTML o XHTML. Se stai producendo XML i due comandi sarebbero rispettivamente:</p>
<pre>header('Content-type: text/xml; charset=utf-8');</pre>
<p>e, all&#8217;inizio dell&#8217;XML:</p>
<pre>&lt;?xml version="1.0" encoding="utf-8" ?&gt;</pre>
<h3>Le funzioni &#8220;pericolose&#8221; di PHP</h3>
<p>Finita la fase preparatoria, puoi passare alla realizzazione dello script vero e proprio, momento in cui avrai a che fare con le numerose funzioni di PHP che potrebbero crearti grossi problemi se usate in un ambiente utf8 come quello appena creato. Puoi trovare un <a title="Handling UTF-8 with PHP" href="http://www.phpwact.org/php/i18n/utf-8" target="_blank">elenco minuzioso di tutte le possibili &#8220;trappole&#8221;</a> nell&#8217;ottima documentazione di <a title="PHP WACT" href="http://www.phpwact.org/" target="_blank">WACT</a>.</p>
<p>A questo punto dovrai scegliere una delle seguenti strategie per aggirare il problema:</p>
<ol>
<li>usare l&#8217;estensione mbstring impostando l&#8217;overloading delle funzioni &#8220;standard&#8221;</li>
<li>usare l&#8217;estensione mbstring sostituendo manualmente le funzioni &#8220;standard&#8221;</li>
<li>usare una libreria dedicata come <a title="PHP UTF-8 library" href="http://sourceforge.net/projects/phputf8" target="_blank">PHP UTF-8</a></li>
<li>usare PHP UTF-8 <strong>e</strong> mbstring</li>
</ol>
<p>Le alternative che ho elencato sono in ordine inverso di preferibilità.</p>
<p>La prima soluzione è infatti &#8220;quick and dirty&#8221; e può tornare molto utile se si intende adattare script già esistenti ad un ambiente utf-8. In pratica si tratta di installare l&#8217;estensione <a title="Multi Byte String PHP Extension" href="http://www.php.net/mbstring" target="_blank">mbstring </a>di PHP e poi dirgli di sostituire automaticamente molte delle funzioni &#8220;pericolose&#8221; con la loro alternativa multibyte. Per fare ciò basta inserire nel php.ini la seguente riga:</p>
<pre>mbstring.func_overload = 7;</pre>
<p>La soluzione può sembrare la migliore, ma potresti trovarti nei guai nel momento in cui vuoi lavorare, ad esempio, su un file binario o su un CSV salvato come ASCII.</p>
<p>Perciò potresti passare alla seconda soluzione, ossia sostituire manualmente i vari <em>strlen</em>, <em>strtoupper </em>eccetera in <em>mb_strlen</em>, <em>mb_strtoupper</em>&#8230;</p>
<p>Ma forse la soluzione migliore è quella di usare la libreria PHP UTF-8, che usa le funzioni mbstring qualora fossero presenti sul server o una versione alternativa per i server shared o in tutte quelle occasioni in cui non puoi installare estensioni.</p>
<h3>Le entities</h3>
<p>A questo punto hai affrontato quasi tutte le insidie (leggendo l&#8217;<a title="Handling UTF-8 with PHP" href="http://www.phpwact.org/php/i18n/utf-8" target="_blank">elenco di cui sopra</a> ne scopro sempre di più!) dell&#8217;utf-8 in PHP e puoi goderti un piccolo lato positivo: puoi utilizzare i caratteri accentati nell&#8217;HTML senza bisogno delle relative entities. Quindi perchè non sostituire la vecchia funzione htmlentities con la nuovo utf8_entities?</p>
<pre>function utf8_entities($str) {</pre>
<pre>	return htmlentities($str, ENT_QUOTES, 'UTF-8');</pre>
<pre>}</pre>
<h3>Ringraziamenti</h3>
<p>Molte delle informazioni contenute in questo tutorial sono prese dall&#8217;ottimo articolo <a title="PHP UTF-8 cheatsheet" href="http://www.nicknettleton.com/zine/php/php-utf-8-cheatsheet" target="_blank">PHP UTF-8 cheatsheet</a> di Nick Nettleton e dalla già citata documentazione di PHP WACT. Grazie ad entrambi per i preziosi consigli.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.basmatitree.net/2008/05/20/php-utf8-qualche-indicazione-utile/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Thanks to&#8230;</title>
		<link>http://www.basmatitree.net/2008/05/15/thanks-to/</link>
		<comments>http://www.basmatitree.net/2008/05/15/thanks-to/#comments</comments>
		<pubDate>Thu, 15 May 2008 17:59:57 +0000</pubDate>
		<dc:creator>Palicao</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.basmatitree.net/?p=12</guid>
		<description><![CDATA[I wish to thank the following website for featuring and linking basmatitree.net: (in no particular order)

inspiredology.com
Unmatched Style
BestWebGallery
LinkCreme
CSS Remix
Shottie Work
Web Newly
CSS Loggia
Ala Brasil
Most Inspired
The Daily Slurp
Wp Wordpress
We Love WP
Fuel your creativity
Inspiration Up
CSS Star
CSS Design Yorkshire
Urbantrash CSS Gallery
CSSBag
CSS Built
screenfluent
sharebrain
PureBlogging
FrancescoMugnai.com
AlecRios.com
BigOwners.com
WebDesignerWall
McBride Woodbridge Marketing Blog
DMoghi
JuliusDesign
SixRevisions
Vandelay Design
MakeFive
Francesco Fonte

]]></description>
			<content:encoded><![CDATA[<p>I wish to thank the following website for featuring and linking <a title="basmatitree.net" href="http://www.basmatitree.net">basmatitree.net</a>: (in no particular order)</p>
<ul>
<li><a title="inspiredology.com" href="http://inspiredology.com/web-design/fighting-against-web-20-part-4-great-grunge-designs/" target="_blank">inspiredology.com</a></li>
<li><a title="Unmatched Style" href="http://www.unmatchedstyle.com/gallery/basmatitreenet.php" target="_blank">Unmatched Style</a></li>
<li><a title="BestWebGallery" href="http://bestwebgallery.com/2008/04/29/basmati-tree/" target="_blank">BestWebGallery</a></li>
<li><a title="LinkCreme" href="http://www.linkcreme.com/2008/04/28/basmatitree/" target="_blank">LinkCreme</a></li>
<li><a title="CSS Remix" href="http://cssremix.com/sites/detail/basmati-tree/" target="_blank">CSS Remix</a></li>
<li><a title="Shottie Work" href="http://www.shottiework.com/?p=305" target="_blank">Shottie Work</a></li>
<li><a title="Web Newly" href="http://www.webnewly.com/?p=1090" target="_blank">Web Newly</a></li>
<li><a title="CSS Loggia" href="http://www.cssloggia.com/2008/04/19/basmati-tree/" target="_blank">CSS Loggia</a></li>
<li><a title="Ala Brasil" href="http://www.alabrasil.com/2008/04/16/basmati-tree/" target="_blank">Ala Brasil</a></li>
<li><a title="Most Inspired" href="http://www.mostinspired.com/sites/view/e7c2c6fe439299778299c67a69990905" target="_blank">Most Inspired</a></li>
<li><a title="The Daily Slurp" href="http://www.dailyslurp.com/default.aspx?dts=4/22/2008" target="_blank">The Daily Slurp</a></li>
<li><a title="Wp Wordpress" href="http://www.wp-wordpress.com/themes-and-tricks/basmati-tree" target="_blank">Wp Wordpress</a></li>
<li><a title="We Love WP" href="http://welovewp.com/gallery/personal-gallery/basmati-tree/" target="_blank">We Love WP</a></li>
<li><a title="Fuel your creativity" href="http://www.fuelyourcreativity.com/2008/04/14/30-inspiring-web-designs/" target="_blank">Fuel your creativity</a></li>
<li><a title="Inspiration Up" href="http://inspirationup.com/2008/05/20/basmati-tree/" target="_blank">Inspiration Up</a></li>
<li><a title="CSS Star" href="http://www.cssstar.com/2008/05/20/basmati-tree/" target="_blank">CSS Star</a></li>
<li><a title="CSS Design Yorkshire" href="http://css-design-yorkshire.com/index.html" target="_blank">CSS Design Yorkshire</a></li>
<li><a title="Urbantrash CSS Gallery" href="http://www.urbantrash.net/cssgallery/2008/05/23/basmati-tree/" target="_blank">Urbantrash CSS Gallery</a></li>
<li><a title="CSSBag" href="http://www.cssbag.com/showcase/basmatitree.net" target="_blank">CSSBag</a></li>
<li><a title="CSS Built" href="http://cssbuilt.com/index.php/2008/05/24/basmatitreenet/" target="_blank">CSS Built</a></li>
<li><a title="screenfluent" href="http://http://screenfluent.com/view/www.basmatitree.net" target="_blank">screenfluent</a></li>
<li><a title="sharebrain" href="http://sharebrain.info/showcase/basmatitreenet/" target="_blank">sharebrain</a></li>
<li><a title="PureBlogging" href="http://www.pureblogging.com/2008/05/26/blog-designs-that-stand-out/" target="_blank">PureBlogging</a></li>
<li><a title="FrancescoMugnai.com" href="http://blogof.francescomugnai.com/2008/05/25-finger-lickin-good-wordpress-layouts/" target="_blank">FrancescoMugnai.com</a></li>
<li><a title="AlecRios.com" href="http://alecrios.com/more-creative-blog-designs" target="_blank">AlecRios.com</a></li>
<li><a title="BigOwners.com" href="http://bigowners.com/2008/05/10/basmatitree/" target="_blank">BigOwners.com</a></li>
<li><a title="WebDesignerWall" href="http://www.webdesignerwall.com/trends/2008-design-trends/" target="_blank">WebDesignerWall</a></li>
<li><a title="Mc Bride Woodbridge Marketing Blog" href="http://blog.mcbridewoodbridge.com/2008/06/14/the-changing-look-of-websites/" target="_blank">McBride Woodbridge Marketing Blog</a></li>
<li><a title="DMoghi" href="http://dmoghi.blogspot.com/2008/06/design-trends-in-2008.html" target="_blank">DMoghi</a></li>
<li><a title="JuliusDesign" href="http://www.juliusdesign.net/vintage-design-inspiration/" target="_blank">JuliusDesign</a></li>
<li><a title="SixRevisions" href="http://sixrevisions.com/web_design/wordpress_designs/" target="_blank">SixRevisions</a></li>
<li><a title="Vandelay Design" href="http://vandelaydesign.com/blog/galleries/artistic-websites-two/" target="_blank">Vandelay Design</a></li>
<li><a title="MakeFive" href="http://www.makefive.com/categories/news-business/design/the-best-css-designed-websites-of-2008/nominees" target="_blank">MakeFive</a></li>
<li><a title="Francesco Fonte" href="http://www.ffranz.com/" target="_blank">Francesco Fonte</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.basmatitree.net/2008/05/15/thanks-to/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Il mio primo tema per WordPress</title>
		<link>http://www.basmatitree.net/2008/05/02/il-mio-primo-tema-per-wordpress/</link>
		<comments>http://www.basmatitree.net/2008/05/02/il-mio-primo-tema-per-wordpress/#comments</comments>
		<pubDate>Fri, 02 May 2008 09:37:45 +0000</pubDate>
		<dc:creator>Palicao</dc:creator>
				<category><![CDATA[Temi Wordpress]]></category>
		<category><![CDATA[wordpress theme]]></category>

		<guid isPermaLink="false">http://www.basmatitree.net/?p=9</guid>
		<description><![CDATA[Dopo qualche settimana di lavoro, finalmente rilascio il mio primo tema per WordPress&#8230;
La caratteristica principale è il modo in cui vengono visualizzati i post in homepage: il primo occupa una colonna, mentre quelli successivi sono disposti su tre colonne.
Le sidebars sono 4 e sono disposte in fondo alla pagina.
Il tema supporta i widget, 2 livelli [...]]]></description>
			<content:encoded><![CDATA[<p>Dopo qualche settimana di lavoro, finalmente rilascio il mio primo tema per WordPress&#8230;</p>
<p>La caratteristica principale è il modo in cui vengono visualizzati i post in homepage: il primo occupa una colonna, mentre quelli successivi sono disposti su tre colonne.</p>
<p>Le sidebars sono 4 e sono disposte in fondo alla pagina.</p>
<p>Il tema supporta i widget, 2 livelli di &#8220;drop-down&#8221; menù e fa uso estensivo di tooltips per visualizzare un maggior numero di informazioni in poco spazio.</p>
<p><a title="BT01 - Red Ceramic Wordpress Theme" href="http://www.basmatitree.net/uploads/BT01/BT01.zip">Scarica BT01 &#8211; Red Ceramic</a></p>
<p><a href="http://www.basmatitree.net/wp-content/uploads/2008/05/bt01_01.jpg" rel="lightbox"><img class="alignnone size-thumbnail wp-image-11" title="Screenshot di BT01" src="http://www.basmatitree.net/wp-content/uploads/2008/05/bt01_01-150x150.jpg" alt="Screenshot di BT01" width="150" height="150" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.basmatitree.net/2008/05/02/il-mio-primo-tema-per-wordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
