<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.0.4" -->
<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/"
	>

<channel>
	<title>proBLOG</title>
	<link>http://www.loige.altervista.org</link>
	<description>Programmazione a 360°</description>
	<pubDate>Sun, 16 Mar 2008 15:20:49 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.4</generator>
	<language>en</language>
			<item>
		<title>Utilizzare il metatag [Bindable]</title>
		<link>http://www.loige.altervista.org/2008/01/02/utilizzare-il-metatag-bindable/</link>
		<comments>http://www.loige.altervista.org/2008/01/02/utilizzare-il-metatag-bindable/#comments</comments>
		<pubDate>Wed, 02 Jan 2008 13:49:42 +0000</pubDate>
		<dc:creator>loige</dc:creator>
		
	<category>Flex</category>
		<guid isPermaLink="false">http://www.loige.altervista.org/2008/01/02/utilizzare-il-metatag-bindable/</guid>
		<description><![CDATA[In questo articolo vedremo quanto può essere utile il metatag [Bindable] e come può velocizzare l&#8217;aggiornamento di tutti i controlli che fanno riferimento ad una variabile definita per l&#8217;appunto [Bindable]
Il metatag [Bindable] associato ad attributi di classe ha la capacità di aggiornanare automaticamente tutti i riferimenti all&#8217;attributo nel momento in cui l&#8217;attributo stesso viene modificato, [...]]]></description>
			<content:encoded><![CDATA[<p>In questo articolo vedremo quanto può essere utile il metatag [Bindable] e come può velocizzare l&#8217;aggiornamento di tutti i controlli che fanno riferimento ad una variabile definita per l&#8217;appunto [Bindable]</p><a id="more-37"></a>
<p>Il metatag [Bindable] associato ad attributi di classe ha la capacità di aggiornanare automaticamente tutti i riferimenti all&#8217;attributo nel momento in cui l&#8217;attributo stesso viene modificato, evitandoci così la fastidiosa pratica di dover scrivere una funzione ad hoc per aggiornare tutti i controlli necessari dopo la modifica di un valore specifico.<br/>Per capire meglio il tutto è conveniente analizzare un esempio concreto.<br/>Osservate il seguente esempio, dopo ne analizzeremo il codice per capire come funziona.</p>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="binding" width="400" height="100"
			codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
			<param name="movie" value="http://loige.altervista.org/wp-content/uploads/samples/binding.swf" />
			<param name="quality" value="high" />
			<param name="bgcolor" value="#869ca7" />
			<param name="allowScriptAccess" value="sameDomain" />
			<embed src="http://loige.altervista.org/wp-content/uploads/samples/binding.swf" quality="high" bgcolor="#869ca7"
				width="400" height="100" name="binding" align="middle"
				play="true"
				loop="false"
				quality="high"
				allowScriptAccess="sameDomain"
				type="application/x-shockwave-flash"
				pluginspage="http://www.adobe.com/go/getflashplayer">
			</embed>
	</object>
<p>L&#8217; esempio è davvero semplicissimo: cliccando sul pulsante viene incrementata una variabile ed aggiornata la label che mostra lo status, ma proprio grazie al metatag [Bindable] possiamo evitare la scrittura della specifica funzione per aggiornare la label poichè verrà tutto fatto in automatico dopo aver incrementato la variabile.</p>

<code><pre>&nbsp;
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;</span>?xml <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&#8220;1.0&#8243;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&#8220;utf-8&#8243;</span>?<span style="font-weight: bold; color: black;">&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;mx</span>:Application xmlns:<span style="color: #000066;">mx</span>=<span style="color: #ff0000;">&#8220;http://www.adobe.com/2006/mxml&#8221;</span> <span style="color: #000066;">layout</span>=<span style="color: #ff0000;">&#8220;vertical&#8221;</span> <span style="color: #000066;">backgroundGradientAlphas</span>=<span style="color: #ff0000;">&#8220;[1.0, 1.0]&#8221;</span> <span style="color: #000066;">backgroundGradientColors</span>=<span style="color: #ff0000;">&#8220;[#B7DBFB, #91B9DC]&#8221;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
	<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;mx</span>:Script<span style="font-weight: bold; color: black;">&gt;</span></span>
		<span style="color: #339933;">&lt;![CDATA[
			
			[Bindable] private var counter:uint;
			
			private function btn_cliccami_OnClick():void
			{
				this.counter++;
			}
			
		]]&gt;</span>
	<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/mx</span>:Script<span style="font-weight: bold; color: black;">&gt;</span></span>
	<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;mx</span>:VBox <span style="color: #000066;">verticalAlign</span>=<span style="color: #ff0000;">&#8220;middle&#8221;</span> <span style="color: #000066;">horizontalAlign</span>=<span style="color: #ff0000;">&#8220;center&#8221;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
		<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;mx</span>:Label <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&#8220;lbl_visualizza&#8221;</span> <span style="color: #000066;">text</span>=<span style="color: #ff0000;">&#8220;Hai cliccato il pulsante {counter} volte&#8221;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
		<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;mx</span>:Button <span style="color: #000066;">label</span>=<span style="color: #ff0000;">&#8220;Cliccami&#8221;</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&#8220;btn_cliccami&#8221;</span> <span style="color: #000066;">click</span>=<span style="color: #ff0000;">&#8220;btn_cliccami_OnClick()&#8221;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
	<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/mx</span>:VBox<span style="font-weight: bold; color: black;">&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/mx</span>:Application<span style="font-weight: bold; color: black;">&gt;</span></span></pre></code>
<p>Il fulcro dell&#8217;applicazione flex sta all&#8217;interno del tag <em>mx:Script</em>.<br/>
Come potete notare abbiamo dichiarato un attributo di classe chiamato <em>counter</em> di tipo <em>uint</em> e lo abbiamo contrasssegnato con il metatag [Bindable].<br/>
Poi abbiamo creato una funzione che non fa altro che incrementare il valore di <em>counter</em>. Questa funzione verrà richiamata alla pressione del pulsante.<br/>
Il resto del codice contiene tutto il necessario a costruire l&#8217;interfaccia grafica. Non dimenticate di inserire l&#8217;attributo <em>click=&#8221;btn_cliccami_OnClick()&#8221;</em> al pulsante per far in modo che al click venga richiamata la funzione da noi creata per incrementare il <em>counter</em>. Inoltre notate l&#8217;uso delle parentesi graffe nell&#8217;attributo text della label: le parentesi graffe servono a specificare una variabile o una funzione che si trova all&#8217;interno di un tag <em>mx:Script</em>.</p>
<p>A questo punto dovrebbe esservi chiaro il funzionamento del metatag [Bindable] e se non siete ancora del tutto convinti della sua efficacia provate innanzitutto a cancellarlo dallo script e ad eseguire la pagina e poi provate ad implementare l&#8217;aggiornamento della label scrivendovi una funzione apposita.</p>
<p>A presto e BUON 2008 <img src='http://www.loige.altervista.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>]]></content:encoded>
			<wfw:commentRSS>http://www.loige.altervista.org/2008/01/02/utilizzare-il-metatag-bindable/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Verificare la corettezza sintattica di un indirizzo di posta elettronica</title>
		<link>http://www.loige.altervista.org/2007/12/04/verificare-la-corettezza-sintattica-di-un-indirizzo-di-posta-elettronica/</link>
		<comments>http://www.loige.altervista.org/2007/12/04/verificare-la-corettezza-sintattica-di-un-indirizzo-di-posta-elettronica/#comments</comments>
		<pubDate>Tue, 04 Dec 2007 17:16:37 +0000</pubDate>
		<dc:creator>loige</dc:creator>
		
	<category>Php</category>
		<guid isPermaLink="false">http://www.loige.altervista.org/2007/12/04/verificare-la-corettezza-sintattica-di-un-indirizzo-di-posta-elettronica/</guid>
		<description><![CDATA[Molto spesso capita di avere a che fare con moduli in cui si richiede all&#8217;utente l&#8217;inserimento del proprio indirizzo di posta elettronica e di conseguenza è buona norma effettuare un controllo sulla veridicità dell&#8217;indirizzo e-mail, ovvero se l&#8217;indirizzo formalmente segue lo schema user@host.ext.
Creare una funzione php che lavori sulla stringa scomponendola ed analizzandola carattere per [...]]]></description>
			<content:encoded><![CDATA[<p>Molto spesso capita di avere a che fare con moduli in cui si richiede all&#8217;utente l&#8217;inserimento del proprio indirizzo di posta elettronica e di conseguenza è buona norma effettuare un controllo sulla veridicità dell&#8217;indirizzo e-mail, ovvero se l&#8217;indirizzo formalmente segue lo schema user@host.ext.</p><a id="more-36"></a>
<p>Creare una funzione php che lavori sulla stringa scomponendola ed analizzandola carattere per carattere può non essere un&#8217;operazione estremamente semplice e veloce da implementare. Per fortuna però php ci mette a disposizione le potentissime <a href="http://it.wikipedia.org/wiki/Espressione_regolare">espressioni regolari</a> che semplificheranno moltissimo il nostro lavoro.</p>
<h3>La funzione</h3>
<p>Vediamo subito come implementare una funzione che prenda in input un presunto indirizzo e-mail e restituisca un valore booleano a seconda che l&#8217;indirizzo e-mail sia sintatticamente corretto o meno.</p>
<code><pre>&nbsp;
 <span style="color: #000000; font-weight: bold;">function</span> isValidMail<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$mail</span><span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#123;</span>
    <span style="color: #0000ff;">$eregString</span> = <span style="color: #ff0000;">&#8220;^[_a-z0-9-]+(<span style="color: #000099; font-weight: bold;">\.</span>[_a-z0-9-]+)*@[a-z0-9-]+(<span style="color: #000099; font-weight: bold;">\.</span>[a-z0-9-]+)*(<span style="color: #000099; font-weight: bold;">\.</span>[a-z]{2,3})$&#8221;</span>;
    <span style="color: #b1b100;">return</span> <span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/eregi"><span style="color: #000066;">eregi</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$eregString</span>, <span style="color: #0000ff;">$mail</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
  <span style="color: #66cc66;">&#125;</span></pre></code>
<p>Come avrete capito dal codice la strategia sta nel definire in qualche modo l&#8217;insieme di tutti i possibili validi indirizzi e-mail e poi verificare se la stringa in input appartiene a quell&#8217;insieme. Le espressioni regolari per l&#8217;appunto permettono di definire insiemi di stringhe ed offrono poi varie funzioni per poter gestire questi insiemi. Nel nostro caso abbiamo definito il nostro insieme di tutti gli indirizzi e-mail validi (prendete per buona la definizione, non è l&#8217;obbiettivo di questo articolo spiegare come funzionano le espressioni regolari) e poi abbiamo utilizzato la funzione <a href="http://it2.php.net/eregi">eregi</a> la quale si occupa appunto di verificare se una stringa data fa parte di un insieme specificato tramite un&#8217;espressione regolare.</p>
<h3>Risorse</h3>
<p>Questo breve articolo è stato utile a trovare una soluzione veloce da sviluppare e soprattutto molto efficiente al problema della verifica di un indirizzo e-mail, ma magari per qualcuno ha anche introdotto per la prima volta le espressioni regolari. Se siete interessati ad approfondire il discorso ecco una serie di risorse utili:</p>
<ul>
<li><a href="http://it.wikipedia.org/wiki/Espressione_regolare">Wikipedia</a></li>
<li><a href="http://php.html.it/articoli/leggi/851/espressioni-regolari/">Introduzione alle espressioni regolari (HTML.IT)</a></li>
<li><a href="http://www.kerouac3001.com/espressioni-regolari-guida-base-50.htm">Guida alle espressioni regolari (kerouac3001)</a></li>
</ul>
<p>Buon divertimento <img src='http://www.loige.altervista.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>]]></content:encoded>
			<wfw:commentRSS>http://www.loige.altervista.org/2007/12/04/verificare-la-corettezza-sintattica-di-un-indirizzo-di-posta-elettronica/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>The Apple Lounge regala un iPhone</title>
		<link>http://www.loige.altervista.org/2007/12/03/the-apple-lounge-regala-un-iphone/</link>
		<comments>http://www.loige.altervista.org/2007/12/03/the-apple-lounge-regala-un-iphone/#comments</comments>
		<pubDate>Mon, 03 Dec 2007 09:51:26 +0000</pubDate>
		<dc:creator>loige</dc:creator>
		
	<category>proBLOG</category>
		<guid isPermaLink="false">http://www.loige.altervista.org/2007/12/03/the-apple-lounge-regala-un-iphone/</guid>
		<description><![CDATA[Interessante iniziativa del sito-blog italiano The Apple Lounge dedicato alla realtà Apple.
Il nuovo gioiellino tecnologico di casa Apple non è ancora disponibile sul mercato italiano e probabilmente non lo sarà prima della primavera 2008. Il team di The Apple Lounge ha pensato bene di indire un concorso mettendo in palio uno splendido iPhone importato dagli [...]]]></description>
			<content:encoded><![CDATA[<p>Interessante iniziativa del sito-blog italiano <a href="http://www.theapplelounge.com">The Apple Lounge</a> dedicato alla realtà Apple.</p><a id="more-35"></a>
<p>Il nuovo gioiellino tecnologico di casa Apple non è ancora disponibile sul mercato italiano e probabilmente non lo sarà prima della primavera 2008. Il team di <a href="http://www.theapplelounge.com">The Apple Lounge</a> ha pensato bene di indire un concorso mettendo in palio uno splendido <a href="http://www.theapplelounge.com/iphone/the-apple-lounge-regala-un-iphone/" title="iPhone">iPhone</a> importato dagli stati uniti.</p>
<p>Partecipare è semplicissimo, basta avere un blog e seguire le istruzioni che trovate qui di seguito: &#8220;The Apple Lounge regala un <a href="http://www.theapplelounge.com/iphone/the-apple-lounge-regala-un-iphone/" title="iPhone">iPhone</a>&#8221; <small>(cliccate sulla parola iPhone)</small>.</p>
<p><img src="http://www.theapplelounge.com/wp-content/uploads/2007/11/filename3.jpg" alt="The Apple Lounge ti regala un iPhone"/></p>
<p>Auguro un grosso in bocca al lupo a tutti i partecipanti</p>]]></content:encoded>
			<wfw:commentRSS>http://www.loige.altervista.org/2007/12/03/the-apple-lounge-regala-un-iphone/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Una classe per inviare e-mail</title>
		<link>http://www.loige.altervista.org/2007/12/02/una-classe-per-inviare-e-mail/</link>
		<comments>http://www.loige.altervista.org/2007/12/02/una-classe-per-inviare-e-mail/#comments</comments>
		<pubDate>Sun, 02 Dec 2007 21:17:45 +0000</pubDate>
		<dc:creator>loige</dc:creator>
		
	<category>Php</category>
		<guid isPermaLink="false">http://www.loige.altervista.org/2007/12/02/una-classe-per-inviare-e-mail/</guid>
		<description><![CDATA[Spesso nelle nostre pagine php abbiamo la necessità di inviare delle e-mail. Questa operazione, sebbene non particolarmente complicata in php grazie alla presenza della funzione mail(), richiede spesso diverse linee di codice, in particolar modo se volete impostare correttamente gli header per poter inviare l&#8217; e-mail in formato HTML. Di conseguenza se in un vostro [...]]]></description>
			<content:encoded><![CDATA[<p>Spesso nelle nostre pagine php abbiamo la necessità di inviare delle e-mail. Questa operazione, sebbene non particolarmente complicata in php grazie alla presenza della funzione <a href="http://it2.php.net/mail">mail()</a>, richiede spesso diverse linee di codice, in particolar modo se volete impostare correttamente gli header per poter inviare l&#8217; e-mail in formato HTML. Di conseguenza se in un vostro sito avete la necessità frequente di inviare e-mail potreste ritrovarvi con un bel po&#8217; di codice duplicato e stilisticamente poco elegante. Per risolvere questo problema possiamo implementare una classe che ci permetta di creare ed inviare agevolmente e-mail preoccupandoci solo di gestire il contenuto, formato e destinatari.</p><a id="more-34"></a>
<h3>Progettiamo la classe</h3>
<p>Innanzitutto la prima cosa da fare e prevedere quali dovranno essere i metodi e gli attributi necessari a svolgere il compito desiderato. Tracciamone un elenco:</p>
<p><strong>Attributi</strong></p>
<ul>
<li>Indirizzo web del sito da cui inviare il messaggio</li>
<li>Nome del mittente</li>
<li>Indirizzo e-mail del mittente</li>
<li>Un array di indirizzi dei destinatari</li>
<li>L&#8217;oggetto dell&#8217; e-mail</li>
<li>Il testo dell&#8217;e-mail</li>
<li>Una variabile booleana utile ad indicare se vogliamo inviare il messaggio di posta in formato html o come testo semplice</li>
</ul>
<p><strong>Metodi</strong></p>
<ul>
<li>Un costruttore per settare i parametri iniziali</li>
<li>Un metodo per impostare le informazioni sul mittente</li>
<li>Un metodo per impostare il soggetto dell&#8217;e-mail</li>
<li>Un metodo per inserire il testo dell&#8217; e-mail e specificarne il formato</li>
<li>Un metodo per aggiungere uno o più destinatari all&#8217;elenco dei destinatari</li>
<li>Un metodo per ripulire la lista dei destinatari</li>
<li>Un metodo per spedire la nostra e-mail</li>
</ul>
<p>In seguito vedremo che saranno utili anche alcune costanti.</p>
<h3>Il codice</h3>
<p>Diamo adesso una rapida occhiata a tutto il codice che compone la nostra classe e poi commentiamo i singoli blocchi separatamente.</p>

<code><pre>&nbsp;
<span style="color: #000000; font-weight: bold;">&lt;?</span>
<span style="color: #808080; font-style: italic;">/*
     class: sendMail
     Classe che permette di inviare agevolmente messaggi di posta elettronica
     
     - Author: Luciano M &lt;loige[at]hotmail.com&gt;
     - Version: 1.0 proBlog Edition
     
    */</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">class</span> sendMail
    <span style="color: #66cc66;">&#123;</span>
        
        <span style="color: #808080; font-style: italic;">/* Varie costanti di supporto */</span>
        <span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0000ff;">$mime</span> = <span style="color: #ff0000;">&#8220;MIME-Version: 1.0&#8243;</span>;
        <span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0000ff;">$contentTypePlain</span> = <span style="color: #ff0000;">&#8220;text/plain&#8221;</span>;
        <span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0000ff;">$contentTypeHtml</span> = <span style="color: #ff0000;">&#8220;text/html&#8221;</span>;
        <span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0000ff;">$charset</span> = <span style="color: #ff0000;">&#8220;iso-8859-1&#8243;</span>;
        
        <span style="color: #808080; font-style: italic;">/* Attributi */</span>
        <span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0000ff;">$isHtml</span> = <span style="color: #000000; font-weight: bold;">true</span>;
        
        <span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0000ff;">$website</span>;
        <span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0000ff;">$senderName</span>;
        <span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0000ff;">$senderMail</span>;
        
        <span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0000ff;">$addressees</span>;
        <span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0000ff;">$subject</span>;
        <span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0000ff;">$text</span>;
&nbsp;
        
        <span style="color: #808080; font-style: italic;">/*
         function: sendMail
         costruttore. Imposta i parametri di default
        */</span>
        <span style="color: #000000; font-weight: bold;">function</span> sendMail<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #66cc66;">&#123;</span>
            <span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">addressees</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
            <span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">setSender</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
            <span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">setSubject</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
            <span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">setText</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #66cc66;">&#125;</span>
        
        <span style="color: #808080; font-style: italic;">/*
         function: setSender
         Permette di impostare il nome e l&#8217;indirizzo e-mail di chi invier&Atilde;&nbsp; l&#8217;e-mail.
         Queste informazioni non sono soggette a nessun controllo di validit&Atilde;&nbsp;.
         
         Parameters:
            $senderMail - L&#8217;indirizzo e-mail del mittente
            $senderName - Il nome del mittente
        */</span>
        <span style="color: #000000; font-weight: bold;">function</span> setSender<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$senderMail</span> = <span style="color: #ff0000;">&#8220;&#8221;</span>, <span style="color: #0000ff;">$senderName</span> = <span style="color: #ff0000;">&#8220;&#8221;</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #66cc66;">&#123;</span>
            <span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">senderMail</span> = <span style="color: #0000ff;">$senderMail</span>;
            
            <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$senderName</span> == <span style="color: #ff0000;">&#8220;&#8221;</span><span style="color: #66cc66;">&#41;</span>
                <span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">senderName</span> = <span style="color: #0000ff;">$senderMail</span>;
            <span style="color: #b1b100;">else</span>
                <span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">senderName</span> = <span style="color: #0000ff;">$senderName</span>;
        <span style="color: #66cc66;">&#125;</span>
        
        
        <span style="color: #808080; font-style: italic;">/*
         function: setSubject
         imposta l&#8217;oggetto dell&#8217;email.
         
         Parameters:
            $subject - l&#8217;oggetto della mail
        */</span>
        <span style="color: #000000; font-weight: bold;">function</span> setSubject<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$subject</span> = <span style="color: #ff0000;">&#8220;&#8221;</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #66cc66;">&#123;</span>
            <span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">subject</span> = <span style="color: #0000ff;">$subject</span>;
        <span style="color: #66cc66;">&#125;</span>
        
        
        <span style="color: #808080; font-style: italic;">/*
         function: setText
         imposta il testo dell&#8217;email. Permette inoltre di specificare se deve essere
         considerato come html (opzione predefinita) o come testo piano.
         
         Parameters:
            $text - il testo principale dell&#8217;email
            $isHtml - un valore booleano che indica se il testo deve essere trattato
            come codice html o come testo semplice.
        */</span>
        <span style="color: #000000; font-weight: bold;">function</span> setText<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$text</span> = <span style="color: #ff0000;">&#8220;&#8221;</span>, <span style="color: #0000ff;">$isHtml</span> = <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #66cc66;">&#123;</span>
            <span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">text</span> = <span style="color: #0000ff;">$text</span>;
            <span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">isHtml</span> = <span style="color: #0000ff;">$isHtml</span>;
        <span style="color: #66cc66;">&#125;</span>
        
        
        <span style="color: #808080; font-style: italic;">/*
         function: addAddresse
         permette di inserire un indirizzo email nell&#8217;elenco dei destinatari.
         L&#8217;indirizzo e-mail verr&Atilde;&nbsp; inserito nell&#8217;elenco solo se ritenuto valido.
         
         Parameters:
            $mail - l&#8217;indirizzo email da inserire
        */</span>
        <span style="color: #000000; font-weight: bold;">function</span> addAddressee<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$mail</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #66cc66;">&#123;</span>
                <a href="http://www.php.net/array_push"><span style="color: #000066;">array_push</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">addressees</span>,<span style="color: #0000ff;">$mail</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #66cc66;">&#125;</span>
        
        <span style="color: #808080; font-style: italic;">/*
         function: clearAddressees
         Ripulisce l&#8217;elenco dei destinatari rendendolo vuoto.
        */</span>
        <span style="color: #000000; font-weight: bold;">function</span> clearAddressees<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #66cc66;">&#123;</span>
            <span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">addressees</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #66cc66;">&#125;</span>
        
        
        <span style="color: #808080; font-style: italic;">/*
         Funzione di supporto per costruire velocemente l&#8217;header dell&#8217;e-mail
        */</span>
        <span style="color: #000000; font-weight: bold;">function</span> createHeader<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #66cc66;">&#123;</span>
            <span style="color: #0000ff;">$content</span> = <span style="color: #ff0000;">&#8220;Content-type: &#8220;</span>;
            <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">isHtml</span><span style="color: #66cc66;">&#41;</span>
                <span style="color: #0000ff;">$content</span> .= <span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">contentTypeHtml</span>;
            <span style="color: #b1b100;">else</span>
                <span style="color: #0000ff;">$content</span> .= <span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">contentTypePlain</span>; 
            <span style="color: #0000ff;">$content</span> .= <span style="color: #ff0000;">&#8220;; charset={$this-&gt;charset}&#8221;</span>;
            
            <span style="color: #0000ff;">$from</span> = <span style="color: #ff0000;">&#8220;From:{$this-&gt;senderName} &lt;{$this-&gt;senderMail}&gt;&#8221;</span>;
            
            <span style="color: #0000ff;">$site</span> = <span style="color: #ff0000;">&#8220;X-WEBSITE: {$this-&gt;website}&#8221;</span>;
            
            <span style="color: #0000ff;">$header</span> = <span style="color: #ff0000;">&#8220;{$this-&gt;mime}<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>{$content}<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>{$from}<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>{$site}&#8221;</span>;
            
            <span style="color: #b1b100;">return</span> <span style="color: #0000ff;">$header</span>;
        <span style="color: #66cc66;">&#125;</span>
        
        <span style="color: #808080; font-style: italic;">/*
         function: send
         Invia la mail utilizzando i valori settati in precedenza ( destinatari, oggetto, testo).
         
         Returns:
            Un valore booleano che indica se l&#8217;invio dell&#8217;email &Atilde;&uml; andato a buon fine o meno.
        */</span>
        <span style="color: #000000; font-weight: bold;">function</span> send<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #66cc66;">&#123;</span>
           <span style="color: #0000ff;">$tmp</span> = <span style="color: #ff0000;">&#8220;&#8221;</span>;
           <span style="color: #0000ff;">$array</span> = <span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">addressees</span>;
           <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$i</span> = <span style="color: #cc66cc;">0</span>; <span style="color: #0000ff;">$i</span> &lt; <a href="http://www.php.net/sizeof"><span style="color: #000066;">sizeof</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$array</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #0000ff;">$i</span>++<span style="color: #66cc66;">&#41;</span>
           <span style="color: #66cc66;">&#123;</span>
                 <span style="color: #0000ff;">$tmp</span> .= <span style="color: #0000ff;">$array</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$i</span><span style="color: #66cc66;">&#93;</span>;
                 <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$i</span> != <span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/sizeof"><span style="color: #000066;">sizeof</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$array</span><span style="color: #66cc66;">&#41;</span> - <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
                 <span style="color: #0000ff;">$tmp</span> .= <span style="color: #ff0000;">&#8220;, &#8220;</span>;
           <span style="color: #66cc66;">&#125;</span>
&nbsp;
            <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span> <a href="http://www.php.net/mail"><span style="color: #000066;">mail</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$tmp</span>,<span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">subject</span>, <span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">text</span>, <span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">createHeader</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>
                <span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">true</span>;
            
            <span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">false</span>;
        <span style="color: #66cc66;">&#125;</span>
        
<span style="color: #66cc66;">&#125;</span> <span style="color: #808080; font-style: italic;">// fine della classe</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></code>
<p>Grazie ai commenti non dovrebbe essere troppo complicato capire come funziona la classe e soprattuo come funziona ogni singolo metodo. Inoltre possiamo vedere con qualche piccolo esempio come diventa facile inviare un&#8217; e-mail con questa classe.</p>
<h3>Un esempio</h3>
<code><pre>&nbsp;
<span style="color: #000000; font-weight: bold;">&lt;?</span>
    <span style="color: #b1b100;">require_once</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&#8220;sendMail.php&#8221;</span><span style="color: #66cc66;">&#41;</span>;
    
    <span style="color: #0000ff;">$sm</span> = <span style="color: #000000; font-weight: bold;">new</span> sendMail<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
    
    <span style="color: #0000ff;">$sm</span>-&gt;<span style="color: #006600;">addAddressee</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&#8220;ilmio@migliore.amico&#8221;</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #0000ff;">$sm</span>-&gt;<span style="color: #006600;">setSender</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&#8220;mario@famigliarossi.com&#8221;</span>,<span style="color: #ff0000;">&#8220;Mario Rossi&#8221;</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #0000ff;">$sm</span>-&gt;<span style="color: #006600;">setSubject</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&#8220;La mia email di prova per la mia classe php&#8221;</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #0000ff;">$sm</span>-&gt;<span style="color: #006600;">setText</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&#8220;questa &Atilde;&uml; una bella &lt;b&gt;email&lt;/b&gt; di prova per farti vedere come funziona la mia classe php &lt;i&gt;sendMail&lt;/i&gt;&#8221;</span><span style="color: #66cc66;">&#41;</span>;
    
    <span style="color: #0000ff;">$sm</span>-&gt;<span style="color: #006600;">send</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
    
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></code>
<p>Eseguendo questo codice php verrà inviata un&#8217; e-mail all&#8217;indirizzo ilmio@migliore.amico a nome di Mario Rossi (mario@famigliarossi.com) contente il testo specificato con la chiamata setText (nota che viene impostato automaticamente il testo come testo html in quanto è omesso il secondo parametro di <em>setText</em>).<br/>
E&#8217; facile mediante questo esempio capire come adesso sia semplice inviare delle e-mail preoccupandoci di specificare solo il loro contenuto e tralasciando header ed altre complicate procedure poco rilevanti e soprattutto poco immediate.</p>
<h3>Possibili miglioramenti</h3>
<p>La nostra classe ovviamente può essere ancora migliorata per raggiungere un livello di maggiore completezza e funzionalità. Possiamo ad esempio integrare un controllo che validi la correttezza formale degli indirizzi e-mail prima di inserirli nell&#8217;elenco dei destinatari e potremmo ancora migliorare la gestione dei destinatari facendo in modo di aggiungere un nome descrittivo per ogni indirizzo e-mail, come avrete spesso visto nei più comuni software di gestione della posta elettronica (Ad es. <em>&#8220;Luciano Rossi &lt;lr@famigliarossi.com&gt;&#8221;</em>).<br/>Ogni programmatore php può ovviamente trovare necessarie alcune aggiunte in base ai compiti che intende assolvere con questa classe.</p>
<h3>Considerazioni conclusive</h3>
<p>Questa soluzione si rivela davvero molto utile per progetti in cui volete inviare semplici notifiche o comunque e-mail non eccessivamente elaborate. Se volete invece gestire gli aspetti più approfonditi delle e-mail vi conviene utilizzare il pacchetto <a href="http://pear.php.net/package/Mail">PEAR::Package::Mail</a> che si rivela di certo più completo e professionale, ma anche molto più complesso.</p>
<p>Nella speranza di essere stato chiaro vi lascio un grosso saluto</p>]]></content:encoded>
			<wfw:commentRSS>http://www.loige.altervista.org/2007/12/02/una-classe-per-inviare-e-mail/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Prima applicazione adobe AIR</title>
		<link>http://www.loige.altervista.org/2007/09/16/prima-applicazione-adobe-air/</link>
		<comments>http://www.loige.altervista.org/2007/09/16/prima-applicazione-adobe-air/#comments</comments>
		<pubDate>Sun, 16 Sep 2007 20:41:52 +0000</pubDate>
		<dc:creator>loige</dc:creator>
		
	<category>AIR</category>
		<guid isPermaLink="false">http://www.loige.altervista.org/2007/09/16/prima-applicazione-adobe-air/</guid>
		<description><![CDATA[Dopo un periodo di pausa estiva eccomi di nuovo qui a scrivere qualcosa sulla programmazione. Quest&#8217;oggi ho voluto fare qualche piccola prova con il nuovo promettente prodotto di casa Adobe: AIR ( Adobe Integrated Runtimes ), ovvero un framework per lo sviluppo di applicazioni desktop e web che segue l&#8217;ormai famosa struttura di flex, altro [...]]]></description>
			<content:encoded><![CDATA[<p>Dopo un periodo di pausa estiva eccomi di nuovo qui a scrivere qualcosa sulla programmazione. Quest&#8217;oggi ho voluto fare qualche piccola prova con il nuovo promettente prodotto di casa Adobe: <a href="http://labs.adobe.com/technologies/air/">AIR</a> ( Adobe Integrated Runtimes ), ovvero un framework per lo sviluppo di applicazioni desktop e web che segue l&#8217;ormai famosa struttura di flex, altro geniale prodotto di casa Adobe.</p>
<a id="more-31"></a>
<p><a href="http://labs.adobe.com/technologies/air/">AIR</a> è un prodotto ancora in piena fase di sviluppo, quindi potete trovare numerose informazioni al riguardo e scaricarne il runtime sul sito Adobe Labs. Inoltre è possibile sfruttare Flex Builder o Flash come IDE per sviluppare applicazioni <a href="http://labs.adobe.com/technologies/air/">AIR</a>. per questa prova io ho utilizzato la versione beta di Flex Builder 3.</p>
<p>Ma prima di prendere in mano il codice eccovi una lista di link utili:</p>
<ul>
<li><a href="http://labs.adobe.com/technologies/air/">Pagina di riferimento di Adobe AIR</a></li>
<li><a href="https://www.adobe.com/cfusion/entitlement/index.cfm?e=labs_adobeflexbuilder3">Flex Builder 3 Beta</a></li>
<li><a href="http://labs.adobe.com/wiki/index.php/AIR:Flash_CS3_Professional_Update">Sviluppare in AIR da Flash CS3</a></li>
</ul>
<p>Da questi link possiamo ottenere tutto il necessario per sviluppare la nostra prima applicazione: un semplice orologio digitale.</p>
<p>Apriamo Flex Builder e creiamo un nuovo progetto AIR. Come noterete subito verranno creati diversi files, tra cui un file xml di configurazione e un file mxml contenente il modulo principale della nostra applicazione.<br/>
Apriamo questo file e cominciamo ad impostare la nostra interfaccia grafica. Il tutto è davvero molto semplice se utilizzate l&#8217;editor WYSIWYG messo a disposizione da flex. Non soffermiamoci troppo su questo aspetto che potrete facilmente sperimentare da soli, la cosa importante è che inseriate una label con ID <strong>&#8220;lbl_clock&#8221;</strong>.</p>
<p> Per maggiore precisione vi aggiungo il codice mxml del mio form, anche perché da qui vedremo come proseguire nello sviluppo della nostra applicazione</p>
<code><pre>&nbsp;
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;</span>?xml <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&#8220;1.0&#8243;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&#8220;utf-8&#8243;</span>?<span style="font-weight: bold; color: black;">&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;mx</span>:WindowedApplication 
	xmlns:<span style="color: #000066;">mx</span>=<span style="color: #ff0000;">&#8220;http://www.adobe.com/2006/mxml&#8221;</span> 
	<span style="color: #000066;">layout</span>=<span style="color: #ff0000;">&#8220;absolute&#8221;</span> 
	<span style="color: #000066;">width</span>=<span style="color: #ff0000;">&#8220;200&#8243;</span> 
	<span style="color: #000066;">height</span>=<span style="color: #ff0000;">&#8220;100&#8243;</span> 
	<span style="color: #000066;">borderStyle</span>=<span style="color: #ff0000;">&#8220;solid&#8221;</span> 
	<span style="color: #000066;">backgroundGradientAlphas</span>=<span style="color: #ff0000;">&#8220;[1.0, 1.0]&#8221;</span> 
	<span style="color: #000066;">backgroundGradientColors</span>=<span style="color: #ff0000;">&#8220;[#0E8CB0, #0C4657]&#8221;</span> 
	<span style="color: #000066;">initialize</span>=<span style="color: #ff0000;">&#8220;main()&#8221;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;mx</span>:Label 
	<span style="color: #000066;">text</span>=<span style="color: #ff0000;">&#8220;00:00:00&#8243;</span> 
	<span style="color: #000066;">width</span>=<span style="color: #ff0000;">&#8220;178&#8243;</span> 
	<span style="color: #000066;">height</span>=<span style="color: #ff0000;">&#8220;46&#8243;</span> 
	<span style="color: #000066;">fontFamily</span>=<span style="color: #ff0000;">&#8220;Arial&#8221;</span> 
	<span style="color: #000066;">fontSize</span>=<span style="color: #ff0000;">&#8220;30&#8243;</span> 
	<span style="color: #000066;">textAlign</span>=<span style="color: #ff0000;">&#8220;center&#8221;</span> 
	<span style="color: #000066;">color</span>=<span style="color: #ff0000;">&#8220;#E5ECE5&#8243;</span> 
	<span style="color: #000066;">enabled</span>=<span style="color: #ff0000;">&#8220;true&#8221;</span> 
	<span style="color: #000066;">id</span>=<span style="color: #ff0000;">&#8220;lbl_clock&#8221;</span> 
	<span style="color: #000066;">horizontalCenter</span>=<span style="color: #ff0000;">&#8220;0&#8243;</span> 
	<span style="color: #000066;">verticalCenter</span>=<span style="color: #ff0000;">&#8220;0&#8243;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;mx</span>:Script 
	<span style="color: #000066;">source</span>=<span style="color: #ff0000;">&#8220;main.as&#8221;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/mx</span>:WindowedApplication<span style="font-weight: bold; color: black;">&gt;</span></span></pre></code>
<p>In base a come avete disegnato il form il vostro codice potrebbe essere sensibilmente diverso ma ci sono alcuni elementi importanti che dovete assolutamente avere per far funzionare correttamente l&#8217;applicazione. Innanzitutto notiamo <strong>initialize=&#8221;main()&#8221;</strong>. Questa stringa sta ad indicare che nel momento in cui la nostra applicazione verrà inizializzata sarà chiamato il metodo main() (tra poco lo scriveremo). E&#8217; possibile inserire questa stringa manualmente dal codice oppure inserirla dal pannello delle proprietà del form andando a selezionare l&#8217;elenco di tutti gli eventi e scrivendo &#8220;load()&#8221; accanto a &#8220;initialize&#8221;.
</p>
<p>
E&#8217; inoltre molto importante definire qual&#8217;è lo script che conterrà le nostre funzioni. Per farlo basta inserire nel codice il tag &lt;mx:script&gt;  . Noi lo abbiamo fatto nelle ultime righe: <strong>&lt;mx:Script source=&#8221;main.as&#8221; /&gt;</strong>.
<br/>
Com&#8217;è facile intuire adesso dovremo inserire nel nostro progetto il file main.as. Questo sarà un file actionscript 3 il quale conterrà tutte le funzioni che serviranno al nostro programma per funzionare correttamente. Ecco ciò che dovremmo scrivere al suo interno:
</p>
<code><pre>&nbsp;
<span style="color: #808080; font-style: italic;">// ActionScript file</span>
	<span style="color: #808080; font-style: italic;">//importo le classi necessarie a creare un timer</span>
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">TimerEvent</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">utils</span>.<span style="color: #006600;">Timer</span>;
	
	<span style="color: #808080; font-style: italic;">//dichiaro un timer che verr&Atilde;&nbsp; utilizzato per eseguire funzioni ad intervalli regolari</span>
	<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> timeh:Timer;
		
	<span style="color: #808080; font-style: italic;">//funzione principale, avviata all&#8217;inizio dell&#8217;applicazione	</span>
	<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> main<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #808080; font-style: italic;">//creo un timer che scandisce un evento ogni secondo (1000 millisecondi) e si ripete all&#8217;infinito.</span>
		<span style="color: #0066CC;">this</span>.<span style="color: #006600;">timeh</span> = <span style="color: #000000; font-weight: bold;">new</span> Timer<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1000</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
		
		<span style="color: #808080; font-style: italic;">//associamo la funzione setTime al timer e lo avviamo col metodo start()</span>
		<span style="color: #0066CC;">this</span>.<span style="color: #006600;">timeh</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>TimerEvent.<span style="color: #006600;">TIMER</span>,<span style="color: #0066CC;">setTime</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #0066CC;">this</span>.<span style="color: #006600;">timeh</span>.<span style="color: #006600;">start</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
			
	<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">setTime</span><span style="color: #66cc66;">&#40;</span>evt:TimerEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #808080; font-style: italic;">//variabile che contiene un oggetto in grado di descrivere la data e l&#8217;orario corrente</span>
		<span style="color: #000000; font-weight: bold;">var</span> cTime:<span style="color: #0066CC;">Date</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Date</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #808080; font-style: italic;">//aggiorna la label della nostra applicazione con l&#8217;orario corrente servendosi della funzione formatTime</span>
		<span style="color: #0066CC;">this</span>.<span style="color: #006600;">lbl_clock</span>.<span style="color: #006600;">text</span> =  formatTime<span style="color: #66cc66;">&#40;</span>cTime.<span style="color: #006600;">getHours</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">toString</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> + 
						<span style="color: #ff0000;">&#8220;:&#8221;</span> + formatTime<span style="color: #66cc66;">&#40;</span>cTime.<span style="color: #006600;">getMinutes</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">toString</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> + 
						<span style="color: #ff0000;">&#8220;:&#8221;</span> + formatTime<span style="color: #66cc66;">&#40;</span>cTime.<span style="color: #006600;">getSeconds</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">toString</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
			
	<span style="color: #808080; font-style: italic;">//funzione di supporto utile ad inserire uno zero se una particolare parte di orario risulta composta da un solo carattere</span>
	<span style="color: #808080; font-style: italic;">// ad esempio puo&#8217; essere usata per trasformare un &quot;5&quot; in &quot;05&quot; o un &quot;6&quot; in &quot;06&quot; e cos&Atilde;&not; via.</span>
	<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> formatTime<span style="color: #66cc66;">&#40;</span>part:<span style="color: #0066CC;">String</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">String</span>
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>part.<span style="color: #006600;">length</span> == <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #ff0000;">&#8220;0&#8243;</span>+part;
					
		<span style="color: #b1b100;">return</span> part;
	<span style="color: #66cc66;">&#125;</span></pre></code>
<p> Grazie ai commenti non dovrebbe essere particolarmente difficile capire come funziona questo codice. Ad ogni modo se avete dei dubbi potete andare a consultare la <a href="http://livedocs.adobe.com/flex/201/langref/index.html">documentazione actionscript3 per flex</a> e leggere i dettagli sulle classi Timer e Date.</p>
<h2>Scarica l&#8217;esempio completo</h2>
<p>Allego un <a href="http://www.loige.altervista.org/wp-content/uploads/2007/09/airclock.zip"><img src="http://www.loige.altervista.org/wp-content/uploads/files/icon_zip.gif" alt="File ZIP" />  file zip</a> contente i sorgenti completi e un pacchetto di installazione per provare subito la nostra applicazione. Questa versione inoltre contiene qualche piccola &#8220;feature&#8221; in più, studiatela attentamente</p>
<h2>Osservazioni</h2>
<p>La nostra applicazione puo&#8217; essere ancora personalizzata e di gran lunga migliorata, quindi può essere un buon punto di partenza per approfondire sempre più i numerosi aspetti e le potenzialità di Adobe AIR, quindi che dire di più? BUON DIVERTIMENTO! <img src='http://www.loige.altervista.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>]]></content:encoded>
			<wfw:commentRSS>http://www.loige.altervista.org/2007/09/16/prima-applicazione-adobe-air/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Heredoc Syntax</title>
		<link>http://www.loige.altervista.org/2007/05/07/heredoc-syntax/</link>
		<comments>http://www.loige.altervista.org/2007/05/07/heredoc-syntax/#comments</comments>
		<pubDate>Mon, 07 May 2007 08:28:31 +0000</pubDate>
		<dc:creator>loige</dc:creator>
		
	<category>Php</category>
		<guid isPermaLink="false">http://www.loige.altervista.org/2007/05/07/heredoc-syntax/</guid>
		<description><![CDATA[Php ci mette a disposizione uno strumento molto utile per marcare l&#8217;inizio e la fine di una stringa. Come ben sappiamo è possibile marcare una stringa sia con gli apici che con i doppi apici, ma con entrambe dovremmo comunque stare molto attenti nell&#8217;utilizzare all&#8217;interno della nostra stringa i doppi apici o l&#8217;apice singolo.
Ad esempio [...]]]></description>
			<content:encoded><![CDATA[<p>Php ci mette a disposizione uno strumento molto utile per marcare l&#8217;inizio e la fine di una stringa. Come ben sappiamo è possibile marcare una stringa sia con gli apici che con i doppi apici, ma con entrambe dovremmo comunque stare molto attenti nell&#8217;utilizzare all&#8217;interno della nostra stringa i doppi apici o l&#8217;apice singolo.</p><a id="more-30"></a>
<p>Ad esempio le due righe di codice successivo porteranno sicurametne un errore durante l&#8217;esecuzione della nostra pagina php:</p>
<code><pre>&nbsp;
<span style="color: #0000ff;">$myFirstString</span> = <span style="color: #ff0000;">&#8216; Ciao a tutto l&#8217;</span> Universo<span style="color: #ff0000;">&#8216;;
$mySecondString = &quot; Il mio cane si chiama &quot;GIOVE&quot; &quot;;
 </span></pre></code>
<p>Com&#8217;è facile intuire nella prima stringa l&#8217;apice dopo la &#8221; l &#8221; verrà riconosciuto come un marcatore di chiusura della stringa, quindi l&#8217;interprete php riconoscerà la parola Universo come una funzione o comunque come un elemento esterno alla stringa e ciò produrrà un errore. Analogamente nel secondo caso. Per ovviare al problema bisogna semplicemente &#8220;slashare&#8221; gli apici e i doppi apici che sono parte della stringa. Ad esempio i seguenti codici sono corretti:</p>
<code><pre>&nbsp;
<span style="color: #0000ff;">$myFirstString</span> = <span style="color: #ff0000;">&#8216; Ciao a tutto l<span style="color: #000099; font-weight: bold;">\&#8217;</span> Universo&#8217;</span>;
<span style="color: #0000ff;">$mySecondString</span> = <span style="color: #ff0000;">&#8221; Il mio cane si chiama <span style="color: #000099; font-weight: bold;">\&#8221;</span>GIOVE<span style="color: #000099; font-weight: bold;">\&#8221;</span> &#8220;</span>;</pre></code>
<p>Adesso non dovreste più ottenere fastidiosi errori.<br/>Talvolta però vi è la necessità di inserire in una stringa del testo molto lungo in cui si presentano parecchie volte gli apici e i doppi apici come elementi di stringa e non come marcatori di fine e inizio stringa. Basta pensare ad un codice html dove ogni proprietà dei tag è inclusa tra doppi apici e spesso troviamo decine e decine di tag anche in codici html relativametne brevi. In questi casi può essere davvero frustrante dover &#8220;slashare&#8221; tutti quegli apici. Vediamo un esempio:<br/>Supponiamo di voler inserire in una stringa php il codice HTML seguente:</p>
<blockquote>
&lt;p&gt;A &lt;a href=&#8221;language.types.string.php&#8221; &gt;&lt;b class=&#8221;type&#8221; &gt;string&lt;/b&gt;&lt;/a&gt; is series of characters. In PHP, a character is the same as a byte, that is, there are exactly 256 different characters possible. This also implies that PHP has no native support of Unicode. See &lt;a href=&#8221;function.utf8-encode.php&#8221;&gt;&lt;b class=&#8221;function&#8221;&gt;utf8_encode()&lt;/b&gt;&lt;/a&gt; and &lt;a href=&#8221;function.utf8-decode.php&#8221;&gt;&lt;b class=&#8221;function&#8221;&gt;utf8_decode()&lt;/b&gt;&lt;/a&gt; for some Unicode support.&lt;/p&gt;
</blockquote>
<p>ecco come dovremmo inserire tale stringa utilizzando la sintassi classica:</p>
<code><pre>&nbsp;
<span style="color: #0000ff;">$theHTMLstring</span> = <span style="color: #ff0000;">&#8221; &lt;p&gt;A &lt;a href=<span style="color: #000099; font-weight: bold;">\&#8221;</span>language.types.string.php<span style="color: #000099; font-weight: bold;">\&#8221;</span> &gt;&lt;b class=<span style="color: #000099; font-weight: bold;">\&#8221;</span>type<span style="color: #000099; font-weight: bold;">\&#8221;</span> &gt;string&lt;/b&gt;
&lt;/a&gt; is series of characters.In PHP, a character is the same as a byte, that is, there are exactly
 256 different characters possible. This also implies that PHP has no native support of Unicode. 
See &lt;a href=<span style="color: #000099; font-weight: bold;">\&#8221;</span>function.utf8-encode.php<span style="color: #000099; font-weight: bold;">\&#8221;</span>&gt;&lt;b class=<span style="color: #000099; font-weight: bold;">\&#8221;</span>function<span style="color: #000099; font-weight: bold;">\&#8221;</span>&gt;utf8_encode()&lt;/b&gt;&lt;/a&gt; and 
&lt;a href=<span style="color: #000099; font-weight: bold;">\&#8221;</span>function.utf8-decode.php<span style="color: #000099; font-weight: bold;">\&#8221;</span>&gt;&lt;b class=<span style="color: #000099; font-weight: bold;">\&#8221;</span>function<span style="color: #000099; font-weight: bold;">\&#8221;</span>&gt;utf8_decode()&lt;/b&gt;&lt;/a&gt; 
for some Unicode support.&lt;/p&gt; &#8220;</span>;</pre></code>
<p>Come notate questa sintassi è un po scomoda da leggere ed è davvero fastifdioso dover inserire tutti gli slash manualmente (con il rischio di dimenticarne qualcuno). Per fortuna php ci mette a disposizione una sintassi alternativa chiamata HEREDOC per delimitare l&#8217;inizio e la fine di una stringa:</p>
<code><pre>&nbsp;
<span style="color: #0000ff;">$heredoc</span> = &lt;&lt;&lt;ID
Ciao mondo!
ID;</pre></code>
<p>
Come Notiamo questa nuova sintassi ci permette di iniziare una stringa con i seguenti caratteri:</p>
<blockquote>&lt;&lt;&lt;IDENTIFICATORE</blockquote>
<p>e di terminare tale stringa con:</p>
<blockquote>IDENTIFICATORE;</blockquote>
<p>L&#8217;indentificatore possiamo sceglierlo a piacere purchè sia uguale sia all&#8217;inizio che alla fine e sia conforme alle regole di sintassi di una variabile, ovvero non deve iniziare con un carattere numerico o un underscore e può contenere solo caratteri alfanumerici e il carattere underscore.<br/>
Attenzione però che <strong>l&#8217;identificatore finale deve cominciare necessariamente alla prima colonna di una nuova riga</strong>, altrimenti non verrà riconosciuto.<br/>
Com&#8217;è facile immaginare questa sintassi ci permette di inserire qualsiasi stringa senza preoccuparci di dover slashare gli apici ed i doppi apici, facendoci così risparmiare tempo, fatica e il rischio di incappare in errori dovuti alla mancanza di qualche slash.</p>
<p>Per maggiori informazioni su questa sintassi vi consiglio vivamente di leggere la guida ufficiale php: <a href="http://it.php.net/manual/it/language.types.string.php#language.types.string.syntax.heredoc">Heredoc Syntax</a> .</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.loige.altervista.org/2007/05/07/heredoc-syntax/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Rimuovere i tag HTML da una stringa</title>
		<link>http://www.loige.altervista.org/2007/04/04/rimuovere-i-tag-html-da-una-stringa/</link>
		<comments>http://www.loige.altervista.org/2007/04/04/rimuovere-i-tag-html-da-una-stringa/#comments</comments>
		<pubDate>Wed, 04 Apr 2007 07:09:14 +0000</pubDate>
		<dc:creator>loige</dc:creator>
		
	<category>Php</category>
		<guid isPermaLink="false">http://www.loige.altervista.org/2007/04/04/rimuovere-i-tag-html-da-una-stringa/</guid>
		<description><![CDATA[Talvolta risulta utile ripulire una stringa html da tutti i suoi tag per recuperare semplicemente il testo. Ciò può risultare parecchio utile per ripulire campi di testo che si occupano di raccogliere commenti, informazioni e così via, così da rimuovere completamente tag o formattazioni indesiderate.
Ho riscontrato la seguente necessità realizzando un sistema di inserimento news [...]]]></description>
			<content:encoded><![CDATA[<p>Talvolta risulta utile ripulire una stringa html da tutti i suoi tag per recuperare semplicemente il testo. Ciò può risultare parecchio utile per ripulire campi di testo che si occupano di raccogliere commenti, informazioni e così via, così da rimuovere completamente tag o formattazioni indesiderate.</p><a id="more-29"></a>
<p>Ho riscontrato la seguente necessità realizzando un sistema di inserimento news nel quale desideravo non avere alcun tipo di formattazione html. Cercando un po&#8217; in giro sulla rete ho trovato una funzione che adempiva pienamente a questo compito:
</p><code><pre>&nbsp;
<span style="color: #000000; font-weight: bold;">&lt;?</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> removeHtmlTags<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$HTMLstring</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
  <span style="color: #0000ff;">$search</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&#8220;&#8216;&lt;script[^&gt;]*?&gt;.*?&lt;/script&gt;&#8217;si&#8221;</span>,
 	                  <span style="color: #ff0000;">&#8220;&#8216;&lt;[/!]*?[^&lt;&gt;]*?&gt;&#8217;si&#8221;</span>,
 	                  <span style="color: #ff0000;">&#8220;&#8216;([rn])[s]+&#8217;&#8221;</span>,
 	                  <span style="color: #ff0000;">&#8220;&#8216;&amp;(quot|#34);&#8217;i&#8221;</span>,
 	                  <span style="color: #ff0000;">&#8220;&#8216;&amp;(amp|#38);&#8217;i&#8221;</span>,
 	                  <span style="color: #ff0000;">&#8220;&#8216;&amp;(lt|#60);&#8217;i&#8221;</span>,
 	                  <span style="color: #ff0000;">&#8220;&#8216;&amp;(gt|#62);&#8217;i&#8221;</span>,
                     	  <span style="color: #ff0000;">&#8220;&#8216;&amp;(nbsp|#160);&#8217;i&#8221;</span>,
 	                  <span style="color: #ff0000;">&#8220;&#8216;&amp;(iexcl|#161);&#8217;i&#8221;</span>,
 	                  <span style="color: #ff0000;">&#8220;&#8216;&amp;(cent|#162);&#8217;i&#8221;</span>,
 	                  <span style="color: #ff0000;">&#8220;&#8216;&amp;(pound|#163);&#8217;i&#8221;</span>,
 	                  <span style="color: #ff0000;">&#8220;&#8216;&amp;(copy|#169);&#8217;i&#8221;</span>,
 	                  <span style="color: #ff0000;">&#8220;&#8216;&amp;#(d+);&#8217;e&#8221;</span><span style="color: #66cc66;">&#41;</span>;
 	 <span style="color: #0000ff;">$replace</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&#8220;&#8221;</span>,
 	                  <span style="color: #ff0000;">&#8220;&#8221;</span>,
	                  <span style="color: #ff0000;">&#8220;<span style="color: #000099; font-weight: bold;">1</span>&#8220;</span>,
	                  <span style="color: #ff0000;">&#8220;<span style="color: #000099; font-weight: bold;">\&#8221;</span>&#8220;</span>,
 	                  <span style="color: #ff0000;">&#8220;&amp;&#8221;</span>,
 	                  <span style="color: #ff0000;">&#8220;&lt;&#8221;</span>,
 	                  <span style="color: #ff0000;">&#8220;&gt;&#8221;</span>,
	                  <span style="color: #ff0000;">&#8221; &#8220;</span>,
 	                  <a href="http://www.php.net/chr"><span style="color: #000066;">chr</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">161</span><span style="color: #66cc66;">&#41;</span>,
 	                  <a href="http://www.php.net/chr"><span style="color: #000066;">chr</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">162</span><span style="color: #66cc66;">&#41;</span>,
 	                  <a href="http://www.php.net/chr"><span style="color: #000066;">chr</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">163</span><span style="color: #66cc66;">&#41;</span>,
	                  <a href="http://www.php.net/chr"><span style="color: #000066;">chr</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">169</span><span style="color: #66cc66;">&#41;</span>,
 	                  <span style="color: #ff0000;">&#8220;chr(xxx1)&#8221;</span><span style="color: #66cc66;">&#41;</span>;
  <span style="color: #b1b100;">return</span> <a href="http://www.php.net/preg_replace"><span style="color: #000066;">preg_replace</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$search</span>, <span style="color: #0000ff;">$replace</span>, <span style="color: #0000ff;">$HTMLstring</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></code>
<p>
Come potete notare dalla prima riga di codice il nostro script rimuove anche i tag &lt;script&gt; che spesso potrebbero risultare pericolosi minando l&#8217;integrità delle vostre pagine.
</p>
<p>
Adesso vedremo un esempio di come utilizzare questa funzione.<br/>
Copiate il codice visto in precedenza in un nuovo file e chiamatelo &#8220;htmlRemove.php&#8221;.<br/>
Adesso create un nuovo file php con il seguente codice
</p><code><pre>&nbsp;
<span style="color: #00bbdd;">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.1//EN&quot; &quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&quot;&gt;</span> 
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;</span></a>? 
include<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&#8220;htmlRemove.php&#8221;</span><span style="color: #66cc66;">&#41;</span>;
?<span style="color: #000000; font-weight: bold;">&gt;</span></a></span>
&nbsp;
<span style="color: #009900;"><a href="http://december.com/html/4/element/html.html"><span style="color: #000000; font-weight: bold;">&lt;html</span></a> xmlns=<span style="color: #ff0000;">&#8220;http://www.w3.org/1999/xhtml&#8221;</span> xml:<span style="color: #000066;">lang</span>=<span style="color: #ff0000;">&#8220;en&#8221;</span> <span style="color: #000066;">lang</span>=<span style="color: #ff0000;">&#8220;en&#8221;</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span>
<span style="color: #009900;"><a href="http://december.com/html/4/element/head.html"><span style="color: #000000; font-weight: bold;">&lt;head&gt;</span></a></span>
	<span style="color: #009900;"><a href="http://december.com/html/4/element/title.html"><span style="color: #000000; font-weight: bold;">&lt;title&gt;</span></a></span>removeHtmlTags test<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/title&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/head&gt;</span></span>
&nbsp;
<span style="color: #009900;"><a href="http://december.com/html/4/element/body.html"><span style="color: #000000; font-weight: bold;">&lt;body&gt;</span></a></span>
  <span style="color: #009900;"><a href="http://december.com/html/4/element/form.html"><span style="color: #000000; font-weight: bold;">&lt;form</span></a> <span style="color: #000066;">action</span>=<span style="color: #ff0000;">&#8220;cleanhtml.php&#8221;</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&#8220;post&#8221;</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span>
  <span style="color: #009900;"><a href="http://december.com/html/4/element/textarea.html"><span style="color: #000000; font-weight: bold;">&lt;textarea</span></a> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&#8220;text&#8221;</span> <span style="color: #000066;">cols</span>=<span style="color: #ff0000;">&#8220;50&#8243;</span> <span style="color: #000066;">rows</span>=<span style="color: #ff0000;">&#8220;20&#8243;</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;</span></a>?
  if <span style="color: #66cc66;">&#40;</span>isset<span style="color: #66cc66;">&#40;</span>$_POST<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&#8216;text&#8217;</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#123;</span>
    	echo<span style="color: #66cc66;">&#40;</span>$_POST<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&#8216;text&#8217;</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;
  <span style="color: #66cc66;">&#125;</span>
  else
  <span style="color: #66cc66;">&#123;</span>
  	echo<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&#8220;Scrivi qui il testo con il codice HTML&#8221;</span><span style="color: #66cc66;">&#41;</span>;
  <span style="color: #66cc66;">&#125;</span>
  ?<span style="color: #000000; font-weight: bold;">&gt;</span></a></span>  
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/textarea&gt;</span></span>
      <span style="color: #009900;"><a href="http://december.com/html/4/element/br.html"><span style="color: #000000; font-weight: bold;">&lt;br</span></a>/<span style="color: #000000; font-weight: bold;">&gt;</span></a></span>
    <span style="color: #009900;"><a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">&lt;input</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&#8220;submit&#8221;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&#8220;Submit&#8221;</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/form&gt;</span></span>
  <span style="color: #009900;"><a href="http://december.com/html/4/element/p.html"><span style="color: #000000; font-weight: bold;">&lt;p&gt;</span></a></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;</span></a>?
  if <span style="color: #66cc66;">&#40;</span>isset<span style="color: #66cc66;">&#40;</span>$_POST<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&#8216;text&#8217;</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#123;</span>
    echo<span style="color: #66cc66;">&#40;</span>removeHtmlTags<span style="color: #66cc66;">&#40;</span>$_POST<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&#8216;text&#8217;</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
  <span style="color: #66cc66;">&#125;</span>
  ?<span style="color: #000000; font-weight: bold;">&gt;</span></a></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/p&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/body&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/html&gt;</span></span></pre></code>
<p>Semplice no? <img src='http://www.loige.altervista.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>]]></content:encoded>
			<wfw:commentRSS>http://www.loige.altervista.org/2007/04/04/rimuovere-i-tag-html-da-una-stringa/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Utilizzare &#8220;Sfoglia per cartelle&#8221; in VB6</title>
		<link>http://www.loige.altervista.org/2007/02/24/utilizzare-sfoglia-per-cartelle-in-vb6/</link>
		<comments>http://www.loige.altervista.org/2007/02/24/utilizzare-sfoglia-per-cartelle-in-vb6/#comments</comments>
		<pubDate>Fri, 23 Feb 2007 23:34:31 +0000</pubDate>
		<dc:creator>loige</dc:creator>
		
	<category>Visual Basic</category>
		<guid isPermaLink="false">http://www.loige.altervista.org/2007/02/24/utilizzare-sfoglia-per-cartelle-in-vb6/</guid>
		<description><![CDATA[E&#8217; possibile sfruttare la finestra standard di Windows (figura 1) per selezionare una particolare cartella che intendete utilizzare in un  progetto Visual Basic 6. In questo articolo vedremo brevemente come fare.

Figura 1
La possibilità di utilizzare questa interfaccia di windows non è offerta di default da visual basic. Sarà quindi necessario inserire un modulo nel [...]]]></description>
			<content:encoded><![CDATA[<p>E&#8217; possibile sfruttare la finestra standard di Windows (figura 1) per selezionare una particolare cartella che intendete utilizzare in un  progetto Visual Basic 6. In questo articolo vedremo brevemente come fare.</p>
<a id="more-26"></a>
<div style="float:left; border:1px solid #cccccc; padding:4px;margin:3px;text-align:center"><a class="imagelink" href="http://www.loige.altervista.org/wp-content/uploads/2007/02/selectfolder.jpg" title="Sfoglia per Cartelle"><img id="image27" src="http://www.loige.altervista.org/wp-content/uploads/2007/02/selectfolder.miniatura.jpg" alt="Sfoglia per Cartelle" /></a><br /><small>Figura 1</small></div>
<div>La possibilità di utilizzare questa interfaccia di windows non è offerta di default da visual basic. Sarà quindi necessario inserire un modulo nel nostro progetto che definisca una particolare funzione in grado di richiamare e gestire la finestra &#8220;sfoglia per cartelle&#8221; offerta da Windows. Tale funzione sarà poi accessibile da qualsiasi punto del nostro progetto. Ecco il codice che dobbiamo inserire nel nuovo modulo:</div>
<div style="clear:both"></div>
<code><pre>&nbsp;
<span style="color: #0000FF;">Option</span> <span style="color: #0000FF;">Explicit</span>
&nbsp;
<span style="color: #0000FF;">Public</span> <span style="color: #0000FF;">Type</span> BrowseInfo
     hwndOwner <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">Long</span>
     pIDLRoot <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">Long</span>
     pszDisplayName <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">Long</span>
     lpszTitle <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">Long</span>
     ulFlags <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">Long</span>
     lpfnCallback <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">Long</span>
     lParam <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">Long</span>
     iImage <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">Long</span>
<span style="color: #0000FF;">End</span> <span style="color: #0000FF;">Type</span>
&nbsp;
<span style="color: #0000FF;">Public</span> <span style="color: #0000FF;">Const</span> BIF_RETURNONLYFSDIRS = <span style="color: #cc66cc;">1</span>
<span style="color: #0000FF;">Public</span> <span style="color: #0000FF;">Const</span> MAX_PATH = <span style="color: #cc66cc;">260</span>
&nbsp;
<span style="color: #0000FF;">Public</span> <span style="color: #0000FF;">Declare</span> <span style="color: #0000FF;">Sub</span> CoTaskMemFree Lib <span style="color: #480000;">&#8220;ole32.dll&#8221;</span> <span style="color: #66cc66;">&#40;</span>ByVal hMem <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">Long</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #0000FF;">Public</span> <span style="color: #0000FF;">Declare</span> <span style="color: #0000FF;">Function</span> lstrcat Lib <span style="color: #480000;">&#8220;kernel32&#8243;</span> Alias <span style="color: #480000;">&#8220;lstrcatA&#8221;</span> <span style="color: #66cc66;">&#40;</span>ByVal lpString1 <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">String</span>, ByVal lpString2 <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">String</span><span style="color: #66cc66;">&#41;</span> <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">Long</span>
<span style="color: #0000FF;">Public</span> <span style="color: #0000FF;">Declare</span> <span style="color: #0000FF;">Function</span> SHBrowseForFolder Lib <span style="color: #480000;">&#8220;shell32&#8243;</span> <span style="color: #66cc66;">&#40;</span>lpbi <span style="color: #0000FF;">As</span> BrowseInfo<span style="color: #66cc66;">&#41;</span> <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">Long</span>
<span style="color: #0000FF;">Public</span> <span style="color: #0000FF;">Declare</span> <span style="color: #0000FF;">Function</span> SHGetPathFromIDList Lib <span style="color: #480000;">&#8220;shell32&#8243;</span> <span style="color: #66cc66;">&#40;</span>ByVal pidList <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">Long</span>, ByVal lpBuffer <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">String</span><span style="color: #66cc66;">&#41;</span> <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">Long</span>
&nbsp;
<span style="color: #0000FF;">Public</span> <span style="color: #0000FF;">Function</span> BrowseForFolder<span style="color: #66cc66;">&#40;</span>hwndOwner <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">Long</span>, sPrompt <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">String</span><span style="color: #66cc66;">&#41;</span> <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">String</span>
      
    <span style="color: #339933;">&#8216;declare variables to be used</span>
     <span style="color: #0000FF;">Dim</span> iNull <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">Integer</span>
     <span style="color: #0000FF;">Dim</span> lpIDList <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">Long</span>
     <span style="color: #0000FF;">Dim</span> lResult <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">Long</span>
     <span style="color: #0000FF;">Dim</span> sPath <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">String</span>
     <span style="color: #0000FF;">Dim</span> udtBI <span style="color: #0000FF;">As</span> BrowseInfo
&nbsp;
    <span style="color: #339933;">&#8216;initialise variables</span>
     <span style="color: #0000FF;">With</span> udtBI
        .<span style="">hwndOwner</span> = hwndOwner
        .<span style="">lpszTitle</span> = lstrcat<span style="color: #66cc66;">&#40;</span>sPrompt, <span style="color: #480000;">&#8220;&#8221;</span><span style="color: #66cc66;">&#41;</span>
        .<span style="">ulFlags</span> = BIF_RETURNONLYFSDIRS
     <span style="color: #0000FF;">End</span> <span style="color: #0000FF;">With</span>
&nbsp;
    <span style="color: #339933;">&#8216;Call the browse for folder API</span>
     lpIDList = SHBrowseForFolder<span style="color: #66cc66;">&#40;</span>udtBI<span style="color: #66cc66;">&#41;</span>
      
    <span style="color: #339933;">&#8216;get the resulting string path</span>
     <span style="color: #0000FF;">If</span> lpIDList <span style="color: #0000FF;">Then</span>
        sPath = <span style="color: #0000FF;">String</span>$<span style="color: #66cc66;">&#40;</span>MAX_PATH, <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>
        lResult = SHGetPathFromIDList<span style="color: #66cc66;">&#40;</span>lpIDList, sPath<span style="color: #66cc66;">&#41;</span>
        <span style="color: #0000FF;">Call</span> CoTaskMemFree<span style="color: #66cc66;">&#40;</span>lpIDList<span style="color: #66cc66;">&#41;</span>
        iNull = <span style="color: #0000FF;">InStr</span><span style="color: #66cc66;">&#40;</span>sPath, <span style="color: #0000FF;">vbNullChar</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #0000FF;">If</span> iNull <span style="color: #0000FF;">Then</span> sPath = <span style="color: #0000FF;">Left</span>$<span style="color: #66cc66;">&#40;</span>sPath, iNull - <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>
     <span style="color: #0000FF;">End</span> <span style="color: #0000FF;">If</span>
&nbsp;
    <span style="color: #339933;">&#8216;If cancel was pressed, sPath = &quot;&quot;</span>
     BrowseForFolder = sPath
&nbsp;
<span style="color: #0000FF;">End</span> <span style="color: #0000FF;">Function</span></pre></code>
<p>Come è semplice intuire dal codice sovrastante, la funzione avrà il nome di &#8221; <strong>BrowseForFolder</strong> &#8220;.<br/> Vediamo subito un esempio su come utilizzare direttamente la funzione appena definita.<br/>
Supponiamo di avere un form come quello presentato nella figura seguente:</p>
<div style="text-align:center"><img id="image28" src="http://www.loige.altervista.org/wp-content/uploads/2007/02/sample.jpg" alt="Sample VB application" /><br/><small>Figura 2</small></div>
<p>Questo form presenta un campo di testo <strong>text1</strong> e un pulsante <strong>cmd1</strong>. Come è facile intuire il pulsante servirà per aprire la finestra di selezione delle cartelle di windows, mentre il campo di testo conterrà il percorso completo della directory selezionata.<br/>Il codice che dovremmo inserire nel form sarà simile a questo:</p>
<code><pre>&nbsp;
<span style="color: #0000FF;">Private</span> <span style="color: #0000FF;">Sub</span> cmd1_Click<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
    folder = BrowseForFolder<span style="color: #66cc66;">&#40;</span>hWnd, <span style="color: #480000;">&#8220;Seleziona la cartella in cui desideri salvare il file&#8221;</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #0000FF;">If</span> folder &lt;&gt; <span style="color: #480000;">&#8220;&#8221;</span> <span style="color: #0000FF;">Then</span> Text1.<span style="">Text</span> = folder
<span style="color: #0000FF;">End</span> <span style="color: #0000FF;">Sub</span></pre></code>
<p>Il funzionamento di questo codice è molto intuitivo: alla pressione del pulsante <strong>cmd1</strong> viene richiamata la funzione <strong>BrowseForFolder</strong> definita precedentemente. Il secondo parametro sta ad indicare ciò che apparirà nella label della finestra di selezione della cartella, nel nostro caso apparirà &#8220;<em>Seleziona la cartella in cui desideri salvare il file</em>&#8220;. il percorso della directory selezionata sarà salvato nella variabile folder. Quindi se folder risulta essere una stringa diversa da una stringa nulla allora il contenuto di folder viene inerito come testo di <strong>text1</strong>.</p>
<p>Con questo è tutto. Provate a sbizzarrirvi un po&#8217; facendo diverse prove. Io per esempio ho utilizzato questa funzione in un programmino che si occupava di copiare dei files in una directory. Alla prossima <img src='http://www.loige.altervista.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>]]></content:encoded>
			<wfw:commentRSS>http://www.loige.altervista.org/2007/02/24/utilizzare-sfoglia-per-cartelle-in-vb6/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Cancellare Directory in Php</title>
		<link>http://www.loige.altervista.org/2007/02/12/cancellare-directory-in-php/</link>
		<comments>http://www.loige.altervista.org/2007/02/12/cancellare-directory-in-php/#comments</comments>
		<pubDate>Mon, 12 Feb 2007 15:02:21 +0000</pubDate>
		<dc:creator>loige</dc:creator>
		
	<category>Php</category>
		<guid isPermaLink="false">http://www.loige.altervista.org/2007/02/12/cancellare-directory-in-php/</guid>
		<description><![CDATA[Spesso si ha l&#8217;esigenza di cancellare una cartella salvata sul nostro server tramite uno script PHP. La prima soluzione che ci viene in mente è quella di utilizzare semplicemente il metodo rmdir() specificando come parametro il percorso alla cartella che vogliamo elimanare. Fatto ciò ci accorgiamo che il metodo rmdir() può cancellare solo cartelle vuote [...]]]></description>
			<content:encoded><![CDATA[<p>Spesso si ha l&#8217;esigenza di cancellare una cartella salvata sul nostro server tramite uno script PHP. La prima soluzione che ci viene in mente è quella di utilizzare semplicemente il metodo <strong>rmdir()</strong> specificando come parametro il percorso alla cartella che vogliamo elimanare. Fatto ciò ci accorgiamo che il metodo <strong>rmdir()</strong> può cancellare solo cartelle vuote e che quindi dobbiamo prima svuotare del tutto la nostra cartella.</p><a id="more-25"></a>
<p>Ecco una funzione ricorsiva scritta ad hoc per risolvere il nostro problema</p>
<code><pre>&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> deleteFilesAndFolder<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$folderName</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
	<span style="color: #808080; font-style: italic;">//crea un array che conterr&Atilde;&nbsp; l&#8217;elenco di tutti i file che sono stati eliminati</span>
	<span style="color: #0000ff;">$elenco</span>=<a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #808080; font-style: italic;">//apre la cartella specificata come parametro</span>
	<span style="color: #0000ff;">$cartella</span> = <a href="http://www.php.net/opendir"><span style="color: #000066;">opendir</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$folderName</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #808080; font-style: italic;">//ciclo che legge tutti i file della cartella</span>
	<span style="color: #b1b100;">while</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$file</span> = <a href="http://www.php.net/readdir"><span style="color: #000066;">readdir</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$cartella</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
		<span style="color: #808080; font-style: italic;">//se il file ha un nome diverso da &#8216;.&#8217; o &#8216;..&#8217;</span>
		<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$file</span> !=<span style="color: #ff0000;">&#8216;.&#8217;</span> &amp;&amp; <span style="color: #0000ff;">$file</span> !=<span style="color: #ff0000;">&#8216;..&#8217;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #808080; font-style: italic;">//Verifica che si tratta di un file e non di una cartella</span>
			<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/is_file"><span style="color: #000066;">is_file</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$folderName</span>.<span style="color: #ff0000;">&#8216;/&#8217;</span>.<span style="color: #0000ff;">$file</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
				<span style="color: #808080; font-style: italic;">//aggiunge il file all&#8217;array</span>
				<a href="http://www.php.net/array_push"><span style="color: #000066;">array_push</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$elenco</span>,<span style="color: #0000ff;">$folderName</span>.<span style="color: #ff0000;">&#8216;/&#8217;</span>.<span style="color: #0000ff;">$file</span><span style="color: #66cc66;">&#41;</span>;
				<span style="color: #808080; font-style: italic;">//elimina il file</span>
				<a href="http://www.php.net/unlink"><span style="color: #000066;">unlink</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$folderName</span>.<span style="color: #ff0000;">&#8216;/&#8217;</span>.<span style="color: #0000ff;">$file</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #66cc66;">&#125;</span>
			<span style="color: #808080; font-style: italic;">//se si tratta di una cartella</span>
			<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/is_dir"><span style="color: #000066;">is_dir</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$folderName</span>.<span style="color: #ff0000;">&#8216;/&#8217;</span>.<span style="color: #0000ff;">$file</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
				<span style="color: #808080; font-style: italic;">//richiama ricorsivamente la stessa funzione aggiungendo i file</span>
				<span style="color: #808080; font-style: italic;">//della nuova funzione all&#8217;elenco creato inizialmente</span>
				<span style="color: #0000ff;">$elenco</span> = myMerge<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$elenco</span>,deleteFilesAndFolder<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$folderName</span>.<span style="color: #ff0000;">&#8216;/&#8217;</span>.<span style="color: #0000ff;">$file</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #66cc66;">&#125;</span>
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
	<span style="color: #808080; font-style: italic;">//Chiude la cartella</span>
	<a href="http://www.php.net/closedir"><span style="color: #000066;">closedir</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$cartella</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #808080; font-style: italic;">//elimina la cartella</span>
	<a href="http://www.php.net/rmdir"><span style="color: #000066;">rmdir</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$folderName</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #808080; font-style: italic;">//aggiunge la cartella stessa all&#8217;elenco</span>
	<a href="http://www.php.net/array_push"><span style="color: #000066;">array_push</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$elenco</span>,<span style="color: #0000ff;">$folderName</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
	<span style="color: #808080; font-style: italic;">//restituisce l&#8217;elenco di tutti i file eliminati</span>
	<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">$elenco</span>;
	 
<span style="color: #66cc66;">&#125;</span></pre></code>
<p>Il metodo <strong>myMerge()</strong> è un metodo personalizzato che si occupa di unire due array:</p>
<code><pre>&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> myMerge<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$array1</span>,<span style="color: #0000ff;">$array2</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
	<span style="color: #b1b100;">foreach</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$array2</span> <span style="color: #b1b100;">as</span> <span style="color: #0000ff;">$a</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		<a href="http://www.php.net/array_push"><span style="color: #000066;">array_push</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$array1</span>,<span style="color: #0000ff;">$a</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">$array1</span>;
<span style="color: #66cc66;">&#125;</span></pre></code>
<p>Ovviamente per poter cancellare files e cartelle dovrete prima assicurarvi di avere i permessi necessari per poter effettuare tale operazione. Inoltre è consigliabile assicurarsi, prima di eliminare la cartella, di commentare le righe con la chiamata ai metodi <strong>unlink()</strong> e <strong>rmdir()</strong> e fare una <strong>print_r()</strong> della nostra funzione, così da vedere esattamente l&#8217;elenco di tutti i files e le cartelle che verranno elimate e assicurarsi di star eseguendo l&#8217;operazione correttettamente.</p>]]></content:encoded>
			<wfw:commentRSS>http://www.loige.altervista.org/2007/02/12/cancellare-directory-in-php/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Javascript: alert, confirm e prompt</title>
		<link>http://www.loige.altervista.org/2007/02/10/alert-confirm-prompt/</link>
		<comments>http://www.loige.altervista.org/2007/02/10/alert-confirm-prompt/#comments</comments>
		<pubDate>Sat, 10 Feb 2007 11:50:55 +0000</pubDate>
		<dc:creator>loige</dc:creator>
		
	<category>JavaScript</category>
		<guid isPermaLink="false">http://www.loige.altervista.org/2007/02/10/alert-confirm-prompt/</guid>
		<description><![CDATA[Javascript ci mette a disposizione questi tre comodi metodi per interagire velocemente con l&#8217;utente. Vediamo come funzionano.
Alert


Il metodo alert serve a mostrare all&#8217;utente un messaggio in una finestrella di informazioni, molto simile a quella che si ottiene in visual basic con il comando msgbox(). Potete vedere come appare in Internet Explorer nell&#8217;immagine sovrastante.
Utilizzare questa finestra [...]]]></description>
			<content:encoded><![CDATA[<p>Javascript ci mette a disposizione questi tre comodi metodi per interagire velocemente con l&#8217;utente. Vediamo come funzionano.</p><a id="more-24"></a>
<h2>Alert</h2>
<p><a class="imagelink" href="http://www.loige.altervista.org/wp-content/uploads/2007/02/alert.jpg" title="Alert"><img id="image21" src="http://www.loige.altervista.org/wp-content/uploads/2007/02/alert.miniatura.jpg" alt="Alert" /></a></p>
<p>
Il metodo alert serve a mostrare all&#8217;utente un messaggio in una finestrella di informazioni, molto simile a quella che si ottiene in visual basic con il comando msgbox(). Potete vedere come appare in Internet Explorer nell&#8217;immagine sovrastante.<br/>
Utilizzare questa finestra è semplicisimo, basta chiamare la funzione <b>alert()</b> passandovi come parametro la stringa che volete mostrare all&#8217;interno della finestra. Ad esempio la finestra nell&#8217; immagine sovrastante è stata generata dal codice seguente:
</p>
<code><pre>&nbsp;
<span style="color: #000066;">alert</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&#8216;Ciao a tutti&#8217;</span><span style="color: #66cc66;">&#41;</span>;</pre></code>
<p>Semplice no? Vediamo adesso il metodo confirm</p>
<h2>Confirm</h2>
<p><a class="imagelink" href="http://www.loige.altervista.org/wp-content/uploads/2007/02/confirm.jpg" title="confirm"><img id="image23" src="http://www.loige.altervista.org/wp-content/uploads/2007/02/confirm.miniatura.jpg" alt="confirm" /></a></p>
<p>
Il metodo confirm, come potete osservare nell&#8217;immagine è molto simile al metodo alert, ma aggiunge ad esso un pulsante: invece del semplice &#8220;ok&#8221; avrete anche la possibilità di selezionare &#8220;annulla&#8221;. Risulta quindi utile quando volete che l&#8217;utente faccia una scelta tra due opzioni. Ecco il codice d&#8217;esempio utilizzato per generare l&#8217;immagine sovrastante:
</p>
<code><pre>&nbsp;
<span style="color: #000066;">confirm</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&#8216;vuoi davvero chiudere questa finestra?&#8217;</span><span style="color: #66cc66;">&#41;</span>;</pre></code>
<p>Con questo codice chiamerete semplicemente la finestra, ma non sarete in grado di reagire adeguatamente alla risposta dell&#8217;utente, vediamo un esempio più completo.</p>
<code><pre>&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> askMe<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #000066;">confirm</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&#8216;Vuoi abbandonare questo sito?&#8217;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
		window.<span style="color: #006600;">location</span> = <span style="color: #3366CC;">&#8216;http://www.google.it&#8217;</span>;
<span style="color: #66cc66;">&#125;</span></pre></code>
<p>Come si deduce da questo esempio il metodo confirm restituisce <b>true</b> se viene schiacciato il tasto &#8220;ok&#8221;, altrimenti restituisce <b>false</b>. Ovviamente potete anche inserire una clausola <strong>else</strong> ed operatori boleani vari come nella variante seguente:</p>
<code><pre>&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> askMe<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">if</span><span style="color: #66cc66;">&#40;</span>!<span style="color: #000066;">confirm</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&#8216;Vuoi continuare a navigare in questo sito?&#8217;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
		window.<span style="color: #006600;">location</span> = <span style="color: #3366CC;">&#8216;http://www.google.it&#8217;</span>;
<span style="color: #66cc66;">&#125;</span></pre></code>
<p>Notate l&#8217;utilizzo dell&#8217; operatore booleano &#8221; <strong>!</strong> &#8221; (NOT)&#8230;</p>
<h2>Prompt</h2>
<p><a class="imagelink" href="http://www.loige.altervista.org/wp-content/uploads/2007/02/prompt.jpg" title="prompt"><img id="image22" src="http://www.loige.altervista.org/wp-content/uploads/2007/02/prompt.miniatura.jpg" alt="prompt" /></a></p>
<p>
La funzione prompt permette all&#8217;utente di inserire del testo come risposta ad una particolare richiesta. Date un&#8217;occhiata all&#8217;immagine sovrastante se avete dei dubbi sulla sua funzionalità. Ecco il codice che è stato utilizzato per realizzare la finestra di prompt mostrata nell&#8217;immagine:
</p>
<code><pre>&nbsp;
<span style="color: #000066;">prompt</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&#8216;Inserisci il tuo nome!&#8217;</span><span style="color: #66cc66;">&#41;</span>;</pre></code>
<p>Noi abbiamo scritto manualmente &#8220;proBLOG&#8221; all&#8217;interno dell&#8217;area di testo, ma esiste la posibilità di inserire un testo di default. Il metodo prompt prende come parametri due stringhe: la prima che serve a specificare il testo da mostrare nella finestra, la seconda (opzionale) serve appunto per specificare un testo di default per l&#8217;area di testo. Su internet explorer se non viene passato quest&#8217;ultimo parametro apparirà la stringa <em>undefined</em>. E&#8217; buona regola quindi specificare anche il secondo parametro, va bene anche una stringa vuota.<br/>Ecco quindi cosa avremmo dovuto scrivere nell&#8217;esempio precedente:</p>
<code><pre>&nbsp;
<span style="color: #000066;">prompt</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&#8216;Inserisci il tuo nome!&#8217;</span>,<span style="color: #3366CC;">&#8216;proBLOG&#8217;</span><span style="color: #66cc66;">&#41;</span>;</pre></code>
<p>il metodo prompt restituisce la stringa inserita dall&#8217;utente nel caso in cui venga schiacciato il pulsante &#8220;ok&#8221;, altrimenti restituisce una stringa vuota oppure &#8221; <em>undefined</em> &#8221; (a seconda del browser). Vediamo un esempio leggermente più complesso:
<code><pre>&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> askName<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
	nome = <span style="color: #000066;">prompt</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&#8220;Dimmi come ti chiami&#8221;</span>,<span style="color: #3366CC;">&#8220;&#8221;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #000066; font-weight: bold;">while</span><span style="color: #66cc66;">&#40;</span>!nome<span style="color: #66cc66;">&#41;</span>
		nome = <span style="color: #000066;">prompt</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&#8220;Dimmi come ti chiami&#8221;</span>,<span style="color: #3366CC;">&#8220;&#8221;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #000066;">alert</span><span style="color: #66cc66;">&#40;</span>nome+<span style="color: #3366CC;">&#8220;! proprio un bel nome!&#8221;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></code>
<p>
Il codice sovrastante continuerà a chiedere il vostro nome finchè non ne specificherete uno e cliccherete sul pulsante ok.
</p>
<h2>Nota</h2>
<p>L&#8217;aspetto grafico delle finestre mostrate da queste tre funzioni cambia parecchio in base al browser ed al sistema operativo dell&#8217;utente che visita la vostra pagina. Il comportamento delle finestre dovrebbe comunque restare uguale, a parte qualche minimo dettaglio di cui abbiamo parlato anche sopra. Non dovreste quindi preoccuparvi più di tanto della compatibilità dei vostri script se utilizzate solo queste semplici funzioni, ma è comunque una buona regola verificare il comportamento dei vari script con più browser e sistemi operativi possibili.</p>
<p>Con questo è tutto. Al solito spero di essere stato più chiaro possibile, ma se avete dubbi o proposte potete lasciare un commento a questo articolo o contattarmi via mail. Alla prossima!
</p>]]></content:encoded>
			<wfw:commentRSS>http://www.loige.altervista.org/2007/02/10/alert-confirm-prompt/feed/</wfw:commentRSS>
		</item>
	</channel>
</rss>
