<?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>Simone Cabrino's Blog &#187; php</title>
	<atom:link href="http://simone.cabrino.it/blog/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://simone.cabrino.it</link>
	<description>Informatica, internet e programmazione: è passione!</description>
	<lastBuildDate>Sat, 14 Aug 2010 08:45:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Symfony: configurazione di apache su EasyPHP</title>
		<link>http://simone.cabrino.it/blog/symfony-configurazione-di-apache-su-easyphp/</link>
		<comments>http://simone.cabrino.it/blog/symfony-configurazione-di-apache-su-easyphp/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 00:17:05 +0000</pubDate>
		<dc:creator>Simone</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Apache Server]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Soluzioni Win]]></category>
		<category><![CDATA[WAMP]]></category>

		<guid isPermaLink="false">http://simone.cabrino.it/?p=780</guid>
		<description><![CDATA[Oggi, un po&#8217; per passione e un po&#8217; per divertimento, ho deciso di configurare EasyPHP 3.0, un &#8220;famoso&#8221; software di tipo WAMP (Windows, Apache, MySQL, PHP) per poter programmare e divertirmi un po&#8217; con l&#8217;ultima versione di Symfony, Symfony 1.2, un ottimo framework per la programmazione con PHP 5. Ho deciso di installare Symfony utilizzando [...]]]></description>
			<content:encoded><![CDATA[<p>Oggi, un po&#8217; per passione e un po&#8217; per divertimento, ho deciso di configurare <a class="zem_slink" title="EasyPHP" rel="homepage" href="http://www.easyphp.org/" mce_href="http://www.easyphp.org/">EasyPHP</a> 3.0, un &#8220;famoso&#8221; software di tipo <a class="zem_slink" title="WAMP" rel="wikipedia" href="http://en.wikipedia.org/wiki/WAMP" mce_href="http://en.wikipedia.org/wiki/WAMP">WAMP</a> (Windows, Apache, <a class="zem_slink" title="MySQL" rel="homepage" href="http://www.mysql.com" mce_href="http://www.mysql.com">MySQL</a>, <a class="zem_slink" title="PHP" rel="homepage" href="http://php.net/" mce_href="http://php.net/">PHP</a>) per poter programmare e divertirmi un po&#8217; con l&#8217;ultima versione di <a class="zem_slink" title="Symfony" rel="homepage" href="http://www.symfony-project.org/" mce_href="http://www.symfony-project.org/">Symfony</a>, Symfony 1.2, un <a title="Programmare con i framework" href="simone.cabrino.it/2008/06/17/usare-un-framework-beh-molto-piu-divertente/ " mce_href="simone.cabrino.it/2008/06/17/usare-un-framework-beh-molto-piu-divertente/ " target="_self">ottimo framework</a> per la programmazione con PHP 5.</p>
<p>Ho deciso di installare Symfony utilizzando <span mce_name="strong" mce_style="font-weight: bold;" style="font-weight: bold;" class="Apple-style-span">PEAR</span>, semplificando tutta la procedura.</p>
<h2>La mia configurazione computer</h2>
<p>Il mio netbook (<span mce_name="strong" mce_style="font-weight: bold;" style="font-weight: bold;" class="Apple-style-span"><a title="Samsung NC10" href="simone.cabrino.it/2008/11/28/samsung-nc10-un-uomo-felice/" mce_href="simone.cabrino.it/2008/11/28/samsung-nc10-un-uomo-felice/" target="_self">Samsung NC10</a></span> &#8211; che tra l&#8217;altro fino a ieri non funzionava!) è la macchina su cui mi diverto a sperimentare e giocare programmando, davanti alla televisione, le notti fino a tardi.</p>
<p>Ho deciso di usare la doppia partizione per salvare sul &#8220;disco&#8221; D: tutti i documenti e, con essi, anche le pagine web e gli script dei siti internet.</p>
<p>Come ho detto, le installazioni di <span mce_name="strong" mce_style="font-weight: bold;" style="font-weight: bold;" class="Apple-style-span">EasyPHP </span>e <span mce_name="strong" mce_style="font-weight: bold;" style="font-weight: bold;" class="Apple-style-span">Symfony </span>seguono due procedure semplicissime:</p>
<ul>
<li>il primo, EasyPHP, va semplicemente <a title="Scarica EasyPHP" href="http://sourceforge.net/project/showfiles.php?group_id=14045" mce_href="http://sourceforge.net/project/showfiles.php?group_id=14045" target="_blank">scaricato</a> e installato</li>
<li>il secondo, Symfony, si può installare comodamente grazie a PEAR, componente di PHP (prima però bisogna <a title="Installare PEAR su EasyPHP" href="http://mikereynolds.wordpress.com/2008/04/23/easyphp-pear-on-windows-get-php-mysql-phpmyadmin-and-my-tweak-for-getting-pear-to-work/" mce_href="http://mikereynolds.wordpress.com/2008/04/23/easyphp-pear-on-windows-get-php-mysql-phpmyadmin-and-my-tweak-for-getting-pear-to-work/" target="_blank">installare PEAR</a>!)</li>
</ul>
<p><img src="http://simone.cabrino.it/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" mce_src="http://simone.cabrino.it/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" class="mceWPmore mceItemNoResize" title="Continua..."/></p>
<h2>Configurazione di Apache</h2>
<p>La configurazione di <span mce_name="strong" mce_style="font-weight: bold;" style="font-weight: bold;" class="Apple-style-span">Apache </span>potrebbe essere uno scoglio per chi è solito programmare ma non ha mai utilizzato un server web, che sia Apache o IIS. E Apache, come tutti i software open source, potrebbe apparire un po&#8217; complicato da configurare (ragazzi, siamo un po&#8217; troppo abituati alle interfacce UI), ma ci permette di fare veramente quello che più vogliamo.</p>
<p>Per una configurazione &#8220;di base&#8221;, aprite dal menu contestuale di EasyPHP la Configurazione di Apache Server, andate sul fondo e incollare il seguente stralcio di codice.</p>
<pre>NameVirtualHost *:80

#area base per i siti web
&lt;VirtualHost *:80>
  ServerName web
  DocumentRoot "D:\web"
&lt;/VirtualHost>

#area per i siti PHP
&lt;VirtualHost *:80>
  ServerName localhost
  DocumentRoot "D:\localhost"
&lt;/VirtualHost>

#concessione autorizzazioni alla cartella condivisa SF di Symfony
&lt;Directory "C:\Program Files\xampp\php\pear\data\symfony\web\sf">
  Allow from All
&lt;/Directory>

#virtual directory per un progetto symfony
&lt;VirtualHost *:80>
  ServerName symfony
  DocumentRoot "C:\web\symfony\web"
  DirectoryIndex index.php
  Alias /sf "C:\Programmi\EasyPHP 3.0\php\data\symfony\web\sf"

  &lt;Directory "D:\web\symfony\web">
   AllowOverride All
   Order allow,deny
   Allow from All
  &lt;/Directory>
&lt;/VirtualHost></pre>
<p>Fatto questo, salvate e riavviate Apache Server (modificate i puntamenti ai folder secondo le vostre specifiche e/o comodità).</p>
<p>E ora non vi resta che configurare il <span mce_name="strong" mce_style="font-weight: bold;" style="font-weight: bold;" class="Apple-style-span">file HOSTS di Windows </span>(<span mce_name="em" mce_style="font-style: italic;" style="font-style: italic;" class="Apple-style-span">C:\WINDOWS\system32\drivers\etc\hosts</span>), file che funziona da domain name server e che vi può servire a dichiarare &#8220;domain name&#8221; per i vostri progetti locali. Anche questo file è molto semplice da modificare: inserite l&#8217;indirizzo IP, tabulate e inserite il nome a dominio, come da esempio.</p>
<pre>127.0.0.1    localhost
127.0.0.1    symfony
127.0.0.1    web</pre>
<p>Queste ultime direttive inserite nel file HOSTS dichiarano 3 nuovi domini, chiamati <span mce_name="em" mce_style="font-style: italic;" style="font-style: italic;" class="Apple-style-span">localhost</span>, <span mce_name="em" mce_style="font-style: italic;" style="font-style: italic;" class="Apple-style-span">symfony</span> e <span mce_name="em" mce_style="font-style: italic;" style="font-style: italic;" class="Apple-style-span">web</span> che puntano a cartelle differenti. Tutti i miei progetti puntatno alla cartella D:\Web, ma voi potete configurarli come più preferite.</p>
<p>E ora&#8230; divertitevi con Symfony!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://simone.cabrino.it/blog/symfony-configurazione-di-apache-su-easyphp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Abilitare cURL su EasyPHP</title>
		<link>http://simone.cabrino.it/blog/abilitare-curl-su-easyphp/</link>
		<comments>http://simone.cabrino.it/blog/abilitare-curl-su-easyphp/#comments</comments>
		<pubDate>Thu, 04 Dec 2008 15:03:27 +0000</pubDate>
		<dc:creator>Simone</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Add new tag]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Soluzioni Win]]></category>
		<category><![CDATA[XAMPP]]></category>

		<guid isPermaLink="false">http://simone.cabrino.it/?p=732</guid>
		<description><![CDATA[Errori dopo aver abilitato cURL in PHP su EasyPHP: ecco come risolvere gli errori di Windows.]]></description>
			<content:encoded><![CDATA[<p>Probabilmente sono rimasto uno dei pochi che utilizzano ancora <strong><a class="zem_slink" title="EasyPHP" rel="homepage" href="http://www.easyphp.org/">EasyPHP</a></strong> al posto dei tanti <strong><a class="zem_slink" title="XAMPP" rel="homepage" href="http://www.apachefriends.org/en/xampp.html">XAMPP</a> </strong>o simili, ma EasyPHP l&#8217;ho visto crescere e, a parte qualche difetto nella versione 1.8 (molto meglio la versione 1.7), ora che è giunto ad una versione 2.0beta è diventato per me un pacchetto standard, tanto da averlo installato anche sul gioiellino che vi ho descritto l&#8217;altro giorno, il mio nuovo <a title="Samsung NC-10" href="http://simone.cabrino.it/2008/11/28/samsung-nc10-un-uomo-felice/" target="_self">Samsung NC10</a>.</p>
<p>Per chi non lo conosce, EasyPHP è un piccolo programma che racchiude Apache, <a class="zem_slink" title="MySQL" rel="homepage" href="http://www.mysql.com">MySQL</a> e <a class="zem_slink" title="PHP" rel="homepage" href="http://php.net/">PHP</a> e permette una semplice configurazione di tutti questi pacchetti per il web.</p>
<h2>Abilitare cURL</h2>
<p>Se avete provato a decommentare la linea che porta così ad abilitare l&#8217;estensione cURL di PHP vi sarete trovati di fronte ad un piccolo errore di <a class="zem_slink" title="Windows" rel="homepage" href="http://www.microsoft.com/WINDOWS">Windows</a> che appare ogni volta che PHP cerca di caricare questa estensione. Infatti, per poter utilizzare cURL, è necessario fare una copia di due DLL di PHP all&#8217;interno della cartella di sistema di Windows (system32).</p>
<blockquote><p>Per abilitare questo modulo in ambiente Windows, occorre copiare libeay32.dll e ssleay32.dll dalla cartella delle DLL del pacchetto PHP/Win32 nella cartella SYSTEM32 della propria macchina Windows. (Es: C:\WINNT\SYSTEM32 o C:\WINDOWS\SYSTEM)</p></blockquote>
<p>Altro? <img src='http://simone.cabrino.it/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://simone.cabrino.it/blog/abilitare-curl-su-easyphp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Leggere un file remoto via ASP</title>
		<link>http://simone.cabrino.it/blog/leggere-un-file-remoto-via-asp/</link>
		<comments>http://simone.cabrino.it/blog/leggere-un-file-remoto-via-asp/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 16:01:30 +0000</pubDate>
		<dc:creator>Simone</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Active Server Pages]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://simone.cabrino.it/?p=465</guid>
		<description><![CDATA[Script in ASP Classic per leggere un file remoto e salvarlo sul proprio server. Funzionamento simile alle funzioni CURL di PHP.]]></description>
			<content:encoded><![CDATA[<p>Questo script permette ai programmatori <strong><a class="zem_slink" title="Active Server Pages" rel="wikipedia" href="http://en.wikipedia.org/wiki/Active_Server_Pages">ASP Classic</a></strong> di <strong>leggere un file remoto</strong> (su un altro server) per incorporarlo nelle proprie applicazioni. In sostanza potrei dire che equivale alle funzioni di <strong>CURL</strong> presenti e magnificamente funzionanti di <a class="zem_slink" title="PHP" rel="homepage" href="http://php.net/">PHP</a>.</p>
<p>Dopo tanto tempo torno a pubblicare un articolo di programmazione, anche se banale, semplice e magari da tanti già utilizzato.</p>
<p><span id="more-465"></span></p>
<pre><code class="vbscript">&lt;%
' inserisci qui l'url della pagina da caricare
urlDaAprire = "http://url.protected.com/file-to-retrieve.txt" 

' creiamo un oggetto xml
Set miaConnessione = CreateObject("Microsoft.XMLHTTP")
' connessione alla nostra url
miaConnessione.Open "get", urlDaAprire, false, "username", "password"

miaConnessione.Send 

' ResponsePage è il contenuto dell'interrogazione all'indirizzo
ResponsePage = miaConnessione.responseText
Set miaConnessione = Nothing

' We will write
strPath = Server.Mappath("./nomeFileLocale.txt")
Set conFile = Server.CreateObject ("Scripting.FileSystemObject")
Set mioFile = conFile.OpenTextFile (strPath, 2)

mioFile.Write(ResponsePage)

mioFile.close
Set mioFile = Nothing
Set conFile = Nothing
%&gt;</code>
</pre>
<p>Username e Password non sono necessari. Nel caso che il file remoto che dovete utilizzare è libero e non richiede permessi, cancellate semplicemente gli ultimi 3 parametri alla riga 7, ottenendo</p>
<pre><code class="vbscript">miaConnessione</code><code class="vbscript">.Open "get", </code><code class="vbscript">urlDaAprire</code></pre>
<p>Come sempre, spero di esservi stato utile! <img src='http://simone.cabrino.it/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://simone.cabrino.it/blog/leggere-un-file-remoto-via-asp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usare un framework? Beh, molto più divertente!</title>
		<link>http://simone.cabrino.it/blog/usare-un-framework-beh-molto-piu-divertente/</link>
		<comments>http://simone.cabrino.it/blog/usare-un-framework-beh-molto-piu-divertente/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 22:46:22 +0000</pubDate>
		<dc:creator>Simone</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://simone.cabrino.it/?p=441</guid>
		<description><![CDATA[L'uso di un framework come Symfony nella programmazione lato PHP può, seppure preveda uno studio iniziale, velocizzare decisamente i tempi di sviluppo. Ecco come.]]></description>
			<content:encoded><![CDATA[<p>Mi rendo conto che, ormai, il <strong>programmatore</strong> ha un ruolo abbastanza &#8220;invisibile&#8221; se si limita a programmare, senza mai aumentare le proprie consocenze, senza mai mettersi a studiare una &#8220;nuova tecnologia&#8221;. Ed oggi, cosa che cerco di fare da ormai davvero parecchio tempo, ho deciso di provare a comprendere, nei dettagli, il funzionamento di un <strong><a class="zem_slink" title="Framework" rel="wikipedia" href="http://en.wikipedia.org/wiki/Framework">framework</a></strong>.</p>
<p>Il framework che ho scelto di usare (di cui vi ho già anticipato nell&#8217;ultimo articolo) è <a class="zem_slink" title="Symfony" rel="homepage" href="http://www.symfony-project.com/">Symfony</a> Project, un framework per lo sviluppo in PHP. E se in questi giorni avevo già visto come creare un progetto, un applicazione ed un modulo per la gestione dei dati, oggi mi sono &#8220;allargato&#8221;, andando a creare il mio &#8220;primo backend&#8221; con Symfony con l&#8217;integrazione del database MySQL.</p>
<p><span id="more-441"></span></p>
<p style="text-align: center;"><a href="http://commons.wikipedia.org/wiki/Image:ModelViewControllerDiagram.svg"><img class="aligncenter" style="border: medium none; display: block;" src="http://upload.wikimedia.org/wikipedia/commons/thumb/2/2e/ModelViewControllerDiagram.svg/202px-ModelViewControllerDiagram.svg.png" alt="A simple diagram depicting the relationship between the Model, View, and Controller. Note: the solid lines indicate a direct association, and the dashed line indicate an indirect association (e.g., observer pattern)." /></a></p>
<p>Programmare con un framework diventa decisamente più veloce (che non vuol dire semplice), anche se si mettono in gioco decine e decine di files differenti. Un area di editing di tipo <strong><a class="zem_slink" title="Create, read, update and delete" rel="wikipedia" href="http://en.wikipedia.org/wiki/Create%2C_read%2C_update_and_delete">CRUD</a></strong> (<em>Create</em>, <em>Read</em>, <em>Update</em> e <em>Delete</em>) che, per un programmatore base prevede la creazione dai 4 documenti differenti in su (non conto tra questi i file di layout e/o simili), attraverso un framework <a class="zem_slink" title="Model-view-controller" rel="wikipedia" href="http://en.wikipedia.org/wiki/Model-view-controller">MVC</a> il numero dei files sale vertiginosamente&#8230;</p>
<p>Unico problema è riuscire a ricordarsi correttamente dove modificare cosa e come modificare le stesse pagine&#8230; Ma appreso il meccanismo, tutto diventa velocissimo!!!</p>
<p><strong>Voi avete provato?</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://simone.cabrino.it/blog/usare-un-framework-beh-molto-piu-divertente/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>~/.bash_profile sui sistemi *nix</title>
		<link>http://simone.cabrino.it/blog/file-bash_profile-2/</link>
		<comments>http://simone.cabrino.it/blog/file-bash_profile-2/#comments</comments>
		<pubDate>Sun, 15 Jun 2008 13:09:47 +0000</pubDate>
		<dc:creator>Simone</dc:creator>
				<category><![CDATA[Soluzioni Mac]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[PowerBook G4]]></category>

		<guid isPermaLink="false">http://simone.cabrino.it/?p=437</guid>
		<description><![CDATA[Configurazione del mio file ~/.bash_profile, ottimizzato per velocizzare la programmazione e la creazione dei prossimi progetti web, basati su Symfony Project.]]></description>
			<content:encoded><![CDATA[<div class="zemanta-img" style="margin: 1em; float: right; display: block;"><a href="http://commons.wikipedia.org/wiki/Image:Symfony_project.png"><img style="border: medium none; display: block;" src="http://upload.wikimedia.org/wikipedia/commons/thumb/9/92/Symfony_project.png/202px-Symfony_project.png" alt="Symfony" /></a></div>
<p>Su tutti i sistemi *nix, la configurazione della Shell (terminale) è personalizzabile, impostando gli <a class="zem_slink" title="Alias (Mac OS)" rel="wikipedia" href="http://en.wikipedia.org/wiki/Alias_%28Mac_OS%29">alias</a> per tutti i comandi che preferite e che usate più spesso.</p>
<p>Oggi, dopo aver reinstallato tutto il sistema <strong>Mac Os X</strong> sul mio vecchio <strong><a class="zem_slink" title="PowerBook G4" rel="wikipedia" href="http://en.wikipedia.org/wiki/PowerBook_G4">PowerBook G4</a></strong> ed aver ripristinato la configurazione del file httpd.conf (che avevo sputtanato giocandoci un po&#8217;), sono qui a configuare tutte le impostazioni perchè mi permettano di lavorare più rapidamente ed in un modo migliore quando, attraverso comandi da terminale, dovrò andare a creare i prossimi progetti web, progetti che ho deciso svilupperò con il <strong>framework <a class="zem_slink" title="PHP" rel="homepage" href="http://php.net/">PHP</a> <a class="zem_slink" title="Symfony" rel="homepage" href="http://www.symfony-project.com/">Symfony</a></strong> (ormai giunto alla versione 1.0.13.</p>
<p><span id="more-437"></span></p>
<p>Ad ora, con tutto abbastanza configurato, il mio file <strong>~/.bash_profile</strong>, editabile semplicemente tramite l&#8217;<strong>editor vi</strong>, è così composto:</p>
<pre>alias ls="ls -G"
alias php="/usr/local/php5/bin/php"
alias symfony="php /usr/local/php5/bin/symfony"
</pre>
<p>E&#8217; semplice anche spiegare cosa ho modificato e cosa, le righe di codice che ho pubblicato, fanno sul sistema e sulle mie nuove finestre (si, una volta fatte le mofiche basta chiudere e riaprire il terminale per vederle applicate) di terminale.</p>
<h2>alias ls=&#8221;ls -G&#8221;</h2>
<p>La funzione per la visualizzazione dei contenuti delle cartelle <em>ls</em>, è sovrascritta dalla stessa funzione con parametro -G sempre attivo. Il parametro -G serve a &#8220;colorare i risultati&#8221; per renderli immediatamente più riconoscibili.</p>
<h2>alias php=&#8221;/usr/local/php5/bin/php&#8221;</h2>
<p>Sovrascrivo la classica &#8220;funzione&#8221; php con quella, appena installata, di php5. Symfony-Project infatti, funziona solo con l&#8217;ultima versione di PHP (<strong>PHP5</strong>), versione che supporta pienamente la <strong>programmazione ad oggetti</strong>.</p>
<h2>alias symfony=&#8221;php /usr/local/php5/bin/symfony&#8221;</h2>
<p>Nonostante abbia installato il pacchetto symfony tramite <a class="zem_slink" title="PHP Extension and Application Repository" rel="wikipedia" href="http://en.wikipedia.org/wiki/PHP_Extension_and_Application_Repository">PEAR</a>, <a class="zem_slink" title="Mac OS X" rel="homepage" href="http://www.apple.com/macosx/">Mac OS X</a> non mi ha riconosciuto e correttamente collegato l&#8217;applicazione. Creando questo alias, riesco a richiamare symfony direttamente chimandolo da qualsiasi punto del sistema.</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Zemified by Zemanta" href="http://www.zemanta.com/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/pixie.png" alt="Zemanta Pixie" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://simone.cabrino.it/blog/file-bash_profile-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP: formattare data</title>
		<link>http://simone.cabrino.it/blog/php-formattare-data/</link>
		<comments>http://simone.cabrino.it/blog/php-formattare-data/#comments</comments>
		<pubDate>Wed, 16 Apr 2008 21:07:04 +0000</pubDate>
		<dc:creator>Simone</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://simone.cabrino.it/?p=332</guid>
		<description><![CDATA[Convertire le date dal formato mySQL al formato più comunemente usato nella scrittura e nelle pagine web.]]></description>
			<content:encoded><![CDATA[<p>Vi capiterà, sicuro, programmando, di essere incappati in questo noioso problema di formattazione delle date che, nelle basi di dati, vengono solitamente create nella forma YYYY-MM-DD (anno, mese, giorno), anzichè nella più semplice, comune ed utilizzata versione latina: DD-MM-YYYY (giorno, mese, anno).</p>
<p>Visto che ci bazzicavo spesso ed era parecchio tempo che non programmavo in PHP, ecco due comode funzioni per sistemare le date: convertToMySQL() e convertToSimple().</p>
<pre><code class="php">function convertToMySQL($mydate) {
    list($dd,$mm,$yy)=explode(".",$mydate);
    if (is_numeric($yy) &amp;&amp; is_numeric($mm) &amp;&amp; is_numeric($dd)) {
      return "$yy-$mm-$dd";
    }
}

function convertToSimple($mydate) {
list($yy,$mm,$dd)=explode("-",$mydate);
    if (is_numeric($yy) &amp;&amp; is_numeric($mm) &amp;&amp; is_numeric($dd)) {
      return "$dd.$mm.$yy";
    }
}</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://simone.cabrino.it/blog/php-formattare-data/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>TinyMCE: manca la formattazione!?</title>
		<link>http://simone.cabrino.it/blog/tinymce-manca-formattazione/</link>
		<comments>http://simone.cabrino.it/blog/tinymce-manca-formattazione/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 16:52:51 +0000</pubDate>
		<dc:creator>Simone</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tinymce]]></category>

		<guid isPermaLink="false">http://simone.cabrino.it/?p=293</guid>
		<description><![CDATA[Risolvere il problema di visualizzazione dell'output di un form TinyMCE utilizzando PHP come motore di programmazione, semplicemente usando la funzione stripslashes.]]></description>
			<content:encoded><![CDATA[<p>Mi ha contattato <a title="Stefano commenta Guida a TinyMCE" href="http://simone.cabrino.it/2008/01/17/tinymce-guida/#comment-988" target="_self">Stefano</a> nello scorso post su <a title="Guida a TinyMCE" href="http://simone.cabrino.it/2008/01/17/tinymce-guida/" target="_self">TinyMCE Guida all&#8217;uso</a>, chiedendomi come risolvere il problema della visualizzazione di colori e giustificazioni (come anche la scelta dei font) del testo passato da un form che utilizza questo editor <a title="Editor WYSIWYG a confronto" href="http://simone.cabrino.it/2007/05/08/confronto-editor-wysiwyg/" target="_self">WYSIWYG</a> alla pagina seguente che ne fa il retrieve.</p>
<p><span id="more-293"></span></p>
<h2>Problema</h2>
<p>Per pigrizia ho chiesto allo stesso Stefano di mandarmi il suo script pronto, così da provarlo e capire cosa non andasse. Le due pagine di test ricevute erano:</p>
<ul>
<li>pagina con editor di testo ad uso dell&#8217;amministratore del sito</li>
<li>pagina di retrieve (recupero) dei dati inviati per visualizzazione anteprima</li>
</ul>
<h3>Area amministrativa con editor WYSIWYG</h3>
<pre><code class="html">&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Prova News&lt;/title&gt;
&lt;script language="javascript" type="text/javascript" src="&lt;?php $basedir ?&gt;/script/tiny_mce/tiny_mce.js"&gt;&lt;/script&gt;
&lt;script language="javascript" type="text/javascript"&gt;
tinyMCE.init({
mode : "textareas",
theme : "advanced",
plugins : "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",

// Theme options
theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect",
theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_statusbar_location : "bottom",
theme_advanced_resizing : true,
apply_source_formatting : true
});
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;form method="post" action="&lt;?php $basedir ?&gt;/vediNews.php"&gt;
&lt;textarea name="content" cols="50" rows="15"&gt;Scrivi News.&lt;/textarea&gt;
&lt;input type="submit" value="Salva" /&gt;
&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre>
<h3>Visualizzazione della news inviata</h3>
<pre><code class="html">&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Visualizzazione News&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;?=$_POST['content'] ?&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre>
<p>Il problema, dopo aver inviato il contenuto dell&#8217;editor di testo, riportando la frase del ragazzo che mi ha contattato, è che</p>
<blockquote><p>[...] viene rispettata solo la formattazione quale grassetto, corsivo, sottolineato, mentre ignorati i cambi di colore, carattere ecc ecc… [...]</p></blockquote>
<h2>Soluzione</h2>
<p>Analizzando il <strong>codice di output</strong> ho notato, <em>stupido che non ci ho pensato prima</em>, a come le variabili passate da un FORM e recuperate attraverso gli operatori <strong>$_GET</strong> e <strong>$_POST</strong> di PHP, aggiungono automaticamente slash ( \ ) prima degli apici singoli ( &#8216; ) e doppi ( &#8221; ) per evitare di interpretare le stesse all&#8217;interno del codice PHP, evitando così problemi ancora maggiori, come la &#8220;rottura&#8221; di query che crea problemi di sicurezza.</p>
<p>Per risolvere così il &#8220;problema&#8221;, basta allora utilizzare la funzione PHP <strong>stripslashes</strong>, che restituisce il risultato privo di slash ( \ ), mostrando così il contenuto del FORM pulito e correttamente interpretabile da tutti i browser.</p>
<pre><code class="php">&lt;?=stripslashes($_POST['testo'])?&gt;</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://simone.cabrino.it/blog/tinymce-manca-formattazione/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
	</channel>
</rss>
