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

<channel>
	<title>BlogYann &#187; PHP</title>
	<atom:link href="http://blog.yann.info/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.yann.info</link>
	<description></description>
	<lastBuildDate>Fri, 02 Dec 2011 22:53:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<atom:link rel='hub' href='http://blog.yann.info/?pushpress=hub'/>
		<item>
		<title>Importer des fichiers trop volumineux pour PHPmyAdmin</title>
		<link>http://blog.yann.info/2010/04/13/importer-des-fichiers-tres-volumineux-pour-phpmyadmin/</link>
		<comments>http://blog.yann.info/2010/04/13/importer-des-fichiers-tres-volumineux-pour-phpmyadmin/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 11:15:26 +0000</pubDate>
		<dc:creator>blog.yann</dc:creator>
				<category><![CDATA[Mysql]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.yann.info/?p=923</guid>
		<description><![CDATA[Si le fichier SQL que vous essayez d&#8217;importer est trop volumineux pour PhpMyAdmin, il vous reste la solution d&#8217;importer dans MySQL directement en ligne de commande. mysql -D ma_base_de_donnees -u nom_Utilisateur -p mot_de_passe &#60; mon_gros_fichier.sql Vous ne passez plus par l&#8217;interface web et du coup vous ne serez pas limité. Avant d&#8217;exécuter la commande placez [...]]]></description>
			<content:encoded><![CDATA[<p>Si le fichier SQL que vous essayez d&#8217;importer est trop volumineux pour PhpMyAdmin, il vous reste la solution d&#8217;importer dans MySQL directement en ligne de commande.</p>
<div style='border:1px solid #4687F3;background-color:#fff'>
<strong>mysql -D</strong> <span style="color: #ff0000;">ma_base_de_donnees</span> <strong>-u</strong> <span style="color: #ff0000;">nom_Utilisateur</span><strong> -p</strong> <span style="color: #ff0000;">mot_de_passe</span> <strong>&lt;</strong> <span style="color: #ff0000;">mon_gros_fichier.sql</span>
</div>
<p>Vous ne passez plus par l&#8217;interface web et du coup vous ne serez pas limité.</p>
<p>Avant d&#8217;exécuter la commande placez vous,avec la commande <strong>cd</strong>, dans le dossier qui contient votre fichier <strong>mon_gros_fichier.sql</strong>. <strong>nom_Utilisateur </strong> et <strong>mot_de_passe</strong> correspondent à un utilisateur MySQL, vous pouvez paramétrer les droits de celui-ci (GRANT par exemple) dans <strong>privilèges </strong>dans l&#8217;interface PHPmyAdmin</p>
<p>Pour exécuter cette ligne de commande vous pouvez vous connecter sur le serveur Web avec <strong>Putty </strong>par exemple et pour mettre le fichier sur le serveur vous pouvez utiliser un client FTP comme <strong>fileZilla</strong>.</p>
<div id="crp_related"><h3>A consulter également :</h3><ul><li><a href="http://blog.yann.info/2010/02/15/popcorn-a-200/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Installation du PopCorn A-200" title="Installation du PopCorn A-200" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/02/15/popcorn-a-200/" rel="bookmark" class="crp_title">Installation du PopCorn A-200</a></li><li><a href="http://blog.yann.info/2010/03/04/mysql-on-duplicate-key-update/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Mysql : ON DUPLICATE KEY UPDATE" title="Mysql : ON DUPLICATE KEY UPDATE" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/03/04/mysql-on-duplicate-key-update/" rel="bookmark" class="crp_title">Mysql : ON DUPLICATE KEY UPDATE</a></li><li><a href="http://blog.yann.info/2010/03/09/alterner-les-couleurs-des-lignes-dun-tableau-php-ou-jquery/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Alterner les couleurs des lignes d&#8217;un tableau (PHP ou jQuery)" title="Alterner les couleurs des lignes d&#8217;un tableau (PHP ou jQuery)" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/03/09/alterner-les-couleurs-des-lignes-dun-tableau-php-ou-jquery/" rel="bookmark" class="crp_title">Alterner les couleurs des lignes d&#8217;un tableau (PHP ou jQuery)</a></li><li><a href="http://blog.yann.info/2010/03/16/jquery-cocher-tout-tout-decocher-checkbox/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="jQuery : cocher tout / tout décocher (checkbox)" title="jQuery : cocher tout / tout décocher (checkbox)" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/03/16/jquery-cocher-tout-tout-decocher-checkbox/" rel="bookmark" class="crp_title">jQuery : cocher tout / tout décocher (checkbox)</a></li><li><a href="http://blog.yann.info/2010/03/12/installer-php_sous_ubuntu_lamp-linux-apache-mysql-php-sous-ubuntu/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Installer PHP sous Ubuntu, soit LAMP (Linux Apache MySQL PHP)" title="Installer PHP sous Ubuntu, soit LAMP (Linux Apache MySQL PHP)" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/03/12/installer-php_sous_ubuntu_lamp-linux-apache-mysql-php-sous-ubuntu/" rel="bookmark" class="crp_title">Installer PHP sous Ubuntu, soit LAMP (Linux Apache MySQL PHP)</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://blog.yann.info/2010/04/13/importer-des-fichiers-tres-volumineux-pour-phpmyadmin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eviter l&#8217;erreur :  &#171;&#160;__PHP_Incomplete_Class&#160;&#187;</title>
		<link>http://blog.yann.info/2010/04/06/eviter-lerreur-__php_incomplete_class/</link>
		<comments>http://blog.yann.info/2010/04/06/eviter-lerreur-__php_incomplete_class/#comments</comments>
		<pubDate>Mon, 05 Apr 2010 22:09:54 +0000</pubDate>
		<dc:creator>blog.yann</dc:creator>
				<category><![CDATA[Developpement]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.yann.info/?p=868</guid>
		<description><![CDATA[Si vous obtenez une erreur __PHP_Incomplete_Class lorsque vous utilisez des objets en session, c&#8217;est probablement parce que vous avez utilisé session_start() avant la déclaration de vos classes. Par conséquent, attention à ce que la directive session.auto_start ne soient pas activée. A consulter également : Humour : gestion de projets informatiques Lendi, rien ! enfin si [...]]]></description>
			<content:encoded><![CDATA[<p>Si vous obtenez une erreur <strong>__PHP_Incomplete_Class</strong> lorsque vous utilisez des objets en session, c&#8217;est probablement parce que vous avez utilisé <strong>session_start() </strong> avant la déclaration de vos classes.<br />
Par conséquent, attention à ce que la directive <strong>session.auto_start</strong> ne soient pas activée.</p>
<div id="attachment_869" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.yann.info/wp-content/uploads/2010/04/elephant-elephant-php-logo.png"><img src="http://blog.yann.info/wp-content/uploads/2010/04/elephant-elephant-php-logo-300x227.png" alt="elephant-php" title="elephant-php" width="300" height="227" class="size-medium wp-image-869" /></a><p class="wp-caption-text">elephant-php</p></div>
<div id="crp_related"><h3>A consulter également :</h3><ul><li><a href="http://blog.yann.info/2010/04/09/humour-gestion-de-projets-informatiques/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Humour : gestion de projets informatiques" title="Humour : gestion de projets informatiques" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/04/09/humour-gestion-de-projets-informatiques/" rel="bookmark" class="crp_title">Humour : gestion de projets informatiques</a></li><li><a href="http://blog.yann.info/2010/04/05/lendi-rien-enfin-si-paques/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Lendi, rien ! enfin si : pâques !" title="Lendi, rien ! enfin si : pâques !" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/04/05/lendi-rien-enfin-si-paques/" rel="bookmark" class="crp_title">Lendi, rien ! enfin si : pâques !</a></li><li><a href="http://blog.yann.info/2010/04/01/une-moto-sous-linux/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Une moto sous Linux&#8230;" title="Une moto sous Linux&#8230;" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/04/01/une-moto-sous-linux/" rel="bookmark" class="crp_title">Une moto sous Linux&#8230;</a></li><li><a href="http://blog.yann.info/2010/03/01/visitez-la-bretagne-en-videos/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Visitez la Bretagne en vidéos" title="Visitez la Bretagne en vidéos" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/03/01/visitez-la-bretagne-en-videos/" rel="bookmark" class="crp_title">Visitez la Bretagne en vidéos</a></li><li><a href="http://blog.yann.info/2010/04/01/une-femme-une-pipe-un-pull-une-pub/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Une femme, une pipe, un pull : une pub" title="Une femme, une pipe, un pull : une pub" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/04/01/une-femme-une-pipe-un-pull-une-pub/" rel="bookmark" class="crp_title">Une femme, une pipe, un pull : une pub</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://blog.yann.info/2010/04/06/eviter-lerreur-__php_incomplete_class/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vos rendez-vous Google Agenda lus par votre Nabaztag</title>
		<link>http://blog.yann.info/2010/04/02/vos-rendez-vous-google-agenda-lus-par-votre-nabaztag/</link>
		<comments>http://blog.yann.info/2010/04/02/vos-rendez-vous-google-agenda-lus-par-votre-nabaztag/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 15:55:53 +0000</pubDate>
		<dc:creator>blog.yann</dc:creator>
				<category><![CDATA[Nabaztag]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.yann.info/?p=843</guid>
		<description><![CDATA[Voilà mon script qui permet à votre lapin de lire vos évènements Google Agenda, est publié sur le site Zcripts : http://www.zcripts.com/zcript/nabgendaz-votre-nabaztag-devient-votre-agenda-google-de-poche-ou-presque Pour comprendre comment ça marche regardez ici (La version publiée sur Zcripts est améliorée par rapport à celle que j&#8217;ai mis sur le blog, notamment pour la gestion des répétitions) A consulter également [...]]]></description>
			<content:encoded><![CDATA[<p>Voilà mon script qui permet à votre lapin de lire vos évènements Google Agenda, est publié sur le site Zcripts : <a target='_blank' href="http://www.zcripts.com/zcript/nabgendaz-votre-nabaztag-devient-votre-agenda-google-de-poche-ou-presque">http://www.zcripts.com/zcript/nabgendaz-votre-nabaztag-devient-votre-agenda-google-de-poche-ou-presque</a><br />
Pour comprendre comment ça marche regardez <a target='_blank' href="http://blog.yann.info/2010/03/26/les-evenements-google-agenda-dictes-par-votre-nabaztag-anniversaires-rdv-etc/">ici </a> (La version publiée sur Zcripts est améliorée par rapport à celle que j&#8217;ai mis sur le blog, notamment pour la gestion des répétitions)<br />
<div id="attachment_850" class="wp-caption alignnone" style="width: 138px"><a href="http://blog.yann.info/wp-content/uploads/2010/04/Calendar.png"><img src="http://blog.yann.info/wp-content/uploads/2010/04/Calendar.png" alt="Google Calendar Nabaztag" title="Google Calendar Nabaztag" width="128" height="128" class="size-full wp-image-850" /></a><p class="wp-caption-text">Google Calendar Nabaztag</p></div></p>
<div id="crp_related"><h3>A consulter également :</h3><ul><li><a href="http://blog.yann.info/2010/03/26/les-evenements-google-agenda-dictes-par-votre-nabaztag-anniversaires-rdv-etc/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Les évènements Google Agenda dictés par votre Nabaztag (anniversaires, rdv etc&#8230;)" title="Les évènements Google Agenda dictés par votre Nabaztag (anniversaires, rdv etc&#8230;)" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/03/26/les-evenements-google-agenda-dictes-par-votre-nabaztag-anniversaires-rdv-etc/" rel="bookmark" class="crp_title">Les évènements Google Agenda dictés par votre Nabaztag (anniversaires, rdv etc&#8230;)</a></li><li><a href="http://blog.yann.info/2010/03/28/nabzmaree-votre-nabaztag-vous-donne-les-horaires-des-marees/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Nabzmaree : votre Nabaztag vous donne les horaires des marées" title="Nabzmaree : votre Nabaztag vous donne les horaires des marées" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/03/28/nabzmaree-votre-nabaztag-vous-donne-les-horaires-des-marees/" rel="bookmark" class="crp_title">Nabzmaree : votre Nabaztag vous donne les horaires des marées</a></li><li><a href="http://blog.yann.info/2010/03/24/nabaztag-recevoir-facilement-son-horoscope-zcripts-nabazcope/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Nabaztag : recevoir facilement son horoscope ! (Zcripts Nabazcope)" title="Nabaztag : recevoir facilement son horoscope ! (Zcripts Nabazcope)" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/03/24/nabaztag-recevoir-facilement-son-horoscope-zcripts-nabazcope/" rel="bookmark" class="crp_title">Nabaztag : recevoir facilement son horoscope ! (Zcripts Nabazcope)</a></li><li><a href="http://blog.yann.info/2010/03/06/debuter-avec-son-nabaztag/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Débuter avec son Nabaztag" title="Débuter avec son Nabaztag" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/03/06/debuter-avec-son-nabaztag/" rel="bookmark" class="crp_title">Débuter avec son Nabaztag</a></li><li><a href="http://blog.yann.info/2010/03/07/nabaztag-et-google-reader-opml/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Nabaztag et Google Reader (OPML)" title="Nabaztag et Google Reader (OPML)" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/03/07/nabaztag-et-google-reader-opml/" rel="bookmark" class="crp_title">Nabaztag et Google Reader (OPML)</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://blog.yann.info/2010/04/02/vos-rendez-vous-google-agenda-lus-par-votre-nabaztag/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Les évènements Google Agenda dictés par votre Nabaztag (anniversaires, rdv etc&#8230;)</title>
		<link>http://blog.yann.info/2010/03/26/les-evenements-google-agenda-dictes-par-votre-nabaztag-anniversaires-rdv-etc/</link>
		<comments>http://blog.yann.info/2010/03/26/les-evenements-google-agenda-dictes-par-votre-nabaztag-anniversaires-rdv-etc/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 15:50:07 +0000</pubDate>
		<dc:creator>blog.yann</dc:creator>
				<category><![CDATA[Developpement]]></category>
		<category><![CDATA[Nabaztag]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Agenda]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[zcripts]]></category>

		<guid isPermaLink="false">http://blog.yann.info/?p=776</guid>
		<description><![CDATA[Si vous avez un compte Google Agenda et que vous souhaitez, que votre lapin vous rappelle les évènements du jour, voici un petit script pour vous. A noter, que ce script sera bientôt disponible sur le site de zcripts.com pour que vous puissiez l&#8217;utiliser sans rien programmer, ni rien héberger Pour trouver l&#8217;adresse de votre [...]]]></description>
			<content:encoded><![CDATA[<p>Si vous avez un compte Google Agenda et que vous souhaitez, que votre lapin vous rappelle les évènements du jour, voici un petit script pour vous.</p>
<p><strong>A noter, que ce script sera bientôt disponible sur le site de <a target='_blank' href="http://www.zcripts.com/zcript/nabazcope-votre-nabaztag-sappelle-madame-irma"> zcripts.com</a> pour que vous puissiez l&#8217;utiliser sans rien programmer, ni rien héberger <img src='http://blog.yann.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </strong></p>
<p>Pour trouver l&#8217;adresse de votre fichier <strong>ical</strong> Google Calendar allez dans <strong>paramètres</strong> (en haut à droite) -> onglet <strong>Agendas</strong> -> cliquez sur le nom de l&#8217;agenda et descendez jusqu&#8217;à<strong> Adresse URL privée et cliquez enfin sur le bouton ical (vert)</strong><br />
<div id="attachment_777" class="wp-caption alignnone" style="width: 310px"><a title='ical_google_agenda' rel='lightbox' href="http://blog.yann.info/wp-content/uploads/2010/03/ical_google_agenda.png"><img src="http://blog.yann.info/wp-content/uploads/2010/03/ical_google_agenda-300x20.png" alt="ical_google_agenda" title="ical_google_agenda" width="300" height="20" class="size-medium wp-image-777" /></a><p class="wp-caption-text">ical_google_agenda</p></div></p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$serial</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;*********&quot;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// serial de votre lapin</span><br />
<span style="color: #000088;">$token</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;*********&quot;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// token de votre lapin</span><br />
<span style="color: #666666; font-style: italic;">// chemin privé de votre fichier ical privé de Google Agenda</span><br />
<span style="color: #000088;">$path</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;***********&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #666666; font-style: italic;">// une partie de l'adresse est en dur pour éviter l'exécution d'un</span><br />
<span style="color: #666666; font-style: italic;">// script distant</span><br />
<span style="color: #000088;">$fichier</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;http://www.google.com/calendar/ical&quot;</span><span style="color: #339933;">.</span> <span style="color: #000088;">$path</span> <span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;basic.ics&quot;</span><span style="color: #339933;">;</span> <br />
<br />
<span style="color: #000088;">$source</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/file_get_contents"><span style="color: #990000;">file_get_contents</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fichier</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// on ouvre le fichier</span><br />
<span style="color: #000088;">$source</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/preg_split"><span style="color: #990000;">preg_split</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'#\n(?!s)#'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$source</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$source</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array_map"><span style="color: #990000;">array_map</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'trim'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$source</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000088;">$tabEve</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// tableau des évenements</span><br />
<span style="color: #000088;">$cles</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// tableau des clés des évenements</span><br />
<br />
<span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span><br />
<span style="color: #666666; font-style: italic;">// Boucle qui parcours le fichier à la recherche des événements </span><br />
<span style="color: #666666; font-style: italic;">// le but est de dire que de l'index début à l'index fin on a un événement </span><br />
<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$source</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$k</span><span style="color: #339933;">=&gt;</span><span style="color: #000088;">$eve</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> &nbsp; <br />
<span style="color: #666666; font-style: italic;">// on récupère la zone pour gérer le décalage horaire </span><br />
&nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><a href="http://www.php.net/eregi"><span style="color: #990000;">eregi</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'X-WR-TIMEZONE'</span><span style="color: #339933;">,</span><span style="color: #000088;">$eve</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$ex</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/explode"><span style="color: #990000;">explode</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;:&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$eve</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$zone</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$ex</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$eve</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'BEGIN:VEVENT'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$cles</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'debut'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$k</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp;<span style="color: #009900;">&#125;</span> <br />
<br />
&nbsp; &nbsp;<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$eve</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'END:VEVENT'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$cles</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'fin'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$k</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$i</span><span style="color: #339933;">++;</span><br />
&nbsp; &nbsp;<span style="color: #009900;">&#125;</span> &nbsp;<br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000088;">$e</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span><br />
<span style="color: #666666; font-style: italic;">// boucle qui va rechercher les évènements que l'on a délimité plus haut, et enfin on garde seulement les</span><br />
<span style="color: #666666; font-style: italic;">// éléments nécessaires pour le lapin</span><br />
<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cles</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$c</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$eve</span><span style="color: #339933;">=</span><span style="color: #000088;">$c</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'debut'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$eve</span><span style="color: #339933;">&lt;</span> <span style="color: #339933;">=</span><span style="color: #000088;">$c</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'fin'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><span style="color: #000088;">$eve</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$ex</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/explode"><span style="color: #990000;">explode</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;:&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$source</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$eve</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$eves</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$e</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$ex</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/eregi"><span style="color: #990000;">eregi</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SUMMARY&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$ex</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <a href="http://www.php.net/eregi"><span style="color: #990000;">eregi</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;RRULE&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$ex</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$eves</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$e</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$ex</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/utf8_decode"><span style="color: #990000;">utf8_decode</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ex</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// repetitions</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/eregi"><span style="color: #990000;">eregi</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;DTSTART&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$ex</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$eves</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$e</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'SMOIS'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ex</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">4</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$eves</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$e</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'SJOUR'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ex</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">6</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$eves</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$e</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'SANNEE'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ex</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$eves</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$e</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'DTSTART'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ex</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ex</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">4</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ex</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">6</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// jour début</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ex</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&gt;</span><span style="color: #cc66cc;">8</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$d</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/date"><span style="color: #990000;">date</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Y-m-d H:i'</span><span style="color: #339933;">,</span><a href="http://www.php.net/mktime"><span style="color: #990000;">mktime</span></a><span style="color: #009900;">&#40;</span><a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ex</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">9</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ex</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">11</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ex</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">4</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ex</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">6</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ex</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$date</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> DateTime<span style="color: #009900;">&#40;</span><span style="color: #000088;">$d</span><span style="color: #339933;">,</span><span style="color: #000000; font-weight: bold;">new</span> DateTimeZone<span style="color: #009900;">&#40;</span><span style="color: #000088;">$zone</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$new_date</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/strtotime"><span style="color: #990000;">strtotime</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$d</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #000088;">$date</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getOffset</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// calcul décalage horaire</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$eves</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$e</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HEURE'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/date"><span style="color: #990000;">date</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'H:i'</span><span style="color: #339933;">,</span><span style="color: #000088;">$new_date</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$eves</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$e</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HEURE'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/eregi"><span style="color: #990000;">eregi</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;DTEND&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$ex</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$eves</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$e</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'EMOIS'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ex</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">4</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$eves</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$e</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'EJOUR'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ex</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">6</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$eves</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$e</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'EANNEE'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ex</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$eves</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$e</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'DTEND'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ex</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ex</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">4</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ex</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">6</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// jour fin</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000088;">$e</span><span style="color: #339933;">++;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #666666; font-style: italic;">// Aujourd'hui</span><br />
<span style="color: #000088;">$jour</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/date"><span style="color: #990000;">date</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;d&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// jour</span><br />
<span style="color: #000088;">$mois</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/date"><span style="color: #990000;">date</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;m&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// mois</span><br />
<span style="color: #000088;">$annee</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/date"><span style="color: #990000;">date</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Y&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// annee</span><br />
<span style="color: #000088;">$aujourdhui</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/date"><span style="color: #990000;">date</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Ymd&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// date du jour</span><br />
<br />
<span style="color: #666666; font-style: italic;">// création du tableau final qui récupère les évènements du jour (aussi ceux qui in une fréquence annuelle pour les anniversaires par exemple)</span><br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/count"><span style="color: #990000;">count</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$eves</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&gt;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$eves</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$eve</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/empty"><span style="color: #990000;">empty</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$eve</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HEURE'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000088;">$eve</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HEURE'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot; &quot;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span><span style="color: #000088;">$eve</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HEURE'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot; à &quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$eve</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HEURE'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span> <br />
<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$aujourdhui</span><span style="color: #339933;">&gt;=</span><span style="color: #000088;">$eve</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'DTSTART'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$aujourdhui</span><span style="color: #339933;">&lt;</span> <span style="color: #339933;">=</span><span style="color: #000088;">$eve</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'DTEND'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$tabEve</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$eve</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'SUMMARY'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span> <span style="color: #000088;">$eve</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HEURE'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/eregi"><span style="color: #990000;">eregi</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;FREQ=YEARLY&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$eve</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'RRULE'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$d</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$annee</span><span style="color: #339933;">.</span><a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$eve</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'DTSTART'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">4</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$aujourdhui</span><span style="color: #339933;">&gt;=</span><span style="color: #000088;">$d</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$aujourdhui</span><span style="color: #339933;">&lt;=</span><span style="color: #000088;">$d</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$tabEve</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$eve</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'SUMMARY'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span> <span style="color: #000088;">$eve</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HEURE'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #666666; font-style: italic;">// Maintenant que nous avons le tableau tabEve des évènements du jour, on peut créer le texte du lapin</span><br />
<br />
<span style="color: #000088;">$phrase</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;évènements du jour : &quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$tabEve</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$evefin</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$phrase</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$evefin</span><span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot; . &quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/empty"><span style="color: #990000;">empty</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$phrase</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$phrase</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Rien aujourd'hui&quot;</span><span style="color: #339933;">;</span> &nbsp; <br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #666666; font-style: italic;">// envoi au lapin !</span><br />
<span style="color: #000088;">$curl</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/curl_init"><span style="color: #990000;">curl_init</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$api_url</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;http://api.nabaztag.com/vl/FR/api.jsp?&amp;sn=<span style="color: #006699; font-weight: bold;">$serial</span>&amp;token=<span style="color: #006699; font-weight: bold;">$token</span>&amp;voice=<span style="color: #006699; font-weight: bold;">$voice</span>&amp;tts=&quot;</span><span style="color: #339933;">.</span><a href="http://www.php.net/urlencode"><span style="color: #990000;">urlencode</span></a><span style="color: #009900;">&#40;</span><a href="http://www.php.net/utf8_encode"><span style="color: #990000;">utf8_encode</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$phrase</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<a href="http://www.php.net/curl_setopt"><span style="color: #990000;">curl_setopt</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #339933;">,</span>CURLOPT_HEADER<span style="color: #339933;">,</span><span style="color: #000088;">$api_url</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<a href="http://www.php.net/curl_exec"><span style="color: #990000;">curl_exec</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<a href="http://www.php.net/curl_close"><span style="color: #990000;">curl_close</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
<br />
<span style="color: #009900;">&#125;</span></div></div>
<p>Voilà. Ce script pourrait être amélioré, avec la gestion des autres répétitions, MONTHLY etc&#8230;</p>
<div id="crp_related"><h3>A consulter également :</h3><ul><li><a href="http://blog.yann.info/2010/04/02/vos-rendez-vous-google-agenda-lus-par-votre-nabaztag/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Vos rendez-vous Google Agenda lus par votre Nabaztag" title="Vos rendez-vous Google Agenda lus par votre Nabaztag" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/04/02/vos-rendez-vous-google-agenda-lus-par-votre-nabaztag/" rel="bookmark" class="crp_title">Vos rendez-vous Google Agenda lus par votre Nabaztag</a></li><li><a href="http://blog.yann.info/2010/03/07/nabaztag-et-google-reader-opml/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Nabaztag et Google Reader (OPML)" title="Nabaztag et Google Reader (OPML)" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/03/07/nabaztag-et-google-reader-opml/" rel="bookmark" class="crp_title">Nabaztag et Google Reader (OPML)</a></li><li><a href="http://blog.yann.info/2010/02/12/nabaztag-dis-moi-ce-que-je-veux-entendre/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Nabaztag, dis moi ce que je veux entendre !" title="Nabaztag, dis moi ce que je veux entendre !" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/02/12/nabaztag-dis-moi-ce-que-je-veux-entendre/" rel="bookmark" class="crp_title">Nabaztag, dis moi ce que je veux entendre !</a></li><li><a href="http://blog.yann.info/2010/03/24/nabaztag-recevoir-facilement-son-horoscope-zcripts-nabazcope/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Nabaztag : recevoir facilement son horoscope ! (Zcripts Nabazcope)" title="Nabaztag : recevoir facilement son horoscope ! (Zcripts Nabazcope)" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/03/24/nabaztag-recevoir-facilement-son-horoscope-zcripts-nabazcope/" rel="bookmark" class="crp_title">Nabaztag : recevoir facilement son horoscope ! (Zcripts Nabazcope)</a></li><li><a href="http://blog.yann.info/2010/03/06/debuter-avec-son-nabaztag/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Débuter avec son Nabaztag" title="Débuter avec son Nabaztag" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/03/06/debuter-avec-son-nabaztag/" rel="bookmark" class="crp_title">Débuter avec son Nabaztag</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://blog.yann.info/2010/03/26/les-evenements-google-agenda-dictes-par-votre-nabaztag-anniversaires-rdv-etc/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Créez votre module personnalisé d&#8217;expédition Joomla Virtuemart</title>
		<link>http://blog.yann.info/2010/03/20/creez-votre-module-dexpedition-personnalise-joomla-virtuemart/</link>
		<comments>http://blog.yann.info/2010/03/20/creez-votre-module-dexpedition-personnalise-joomla-virtuemart/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 23:32:42 +0000</pubDate>
		<dc:creator>blog.yann</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Developpement]]></category>
		<category><![CDATA[Joomla]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Virtuemart]]></category>

		<guid isPermaLink="false">http://blog.yann.info/?p=688</guid>
		<description><![CDATA[Si vous avez besoin de créer un module d&#8217;expédition personnalisé pour Joomla Virtuemart, voici quelques informations pour vous aider. (Pour info, pour installer VirtueMart sur Joomla, il suffit de télécharger Virtuemart, vous dezippez l&#8217;archive, puis vous vous connectez en administrateur sur joomla, vous allez dans le menu extensions puis installer/desinstaller et vous uploadez/installez le fichier [...]]]></description>
			<content:encoded><![CDATA[<p>Si vous avez besoin de créer un module d&#8217;expédition personnalisé pour Joomla Virtuemart, voici quelques informations pour vous aider.</p>
<p><em>(Pour info, pour installer VirtueMart sur Joomla, il suffit de télécharger Virtuemart, vous dezippez l&#8217;archive, puis vous vous connectez en administrateur sur joomla, vous allez dans le menu <strong>extensions</strong> puis <strong>installer/desinstaller<br />
</strong> et vous uploadez/installez le fichier virtuemart.zip)</em></p>
<h3>Fichiers de base</h3>
<p>Il y a 3 fichiers de bases pour créer un module d&#8217;expédition, que vous devrez placer dans :<br />
<strong>/administrator/components/com_virtuemart/classes/shipping/</strong><br />
Une classe, un fichier d&#8217;information et un fichier de configuration.<br />
Si vous voulez créer un module s&#8217;appelant <strong>expPerso </strong> nommez les fichiers ainsi :</p>
<ul>
<li>expPerso.php (la classe expPerso)</li>
<li> expPerso.ini (versionning du module, créateur etc&#8230;)</li>
<li>expPerso.cfg.php (constantes de configuration du module)</li>
</ul>
<p>Récupérez les 3 fichiers du module de base, renommez les et adaptez les&#8230; <img src='http://blog.yann.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Une fois ces 3 fichiers placés, vous pourrez activer votre module dans<strong> composant -> VirtueMart -> configuration  -> onglet shipping</strong><br />
<a rel='lightbox' title='Virtuemart : activer module expédition' href="http://blog.yann.info/wp-content/uploads/2010/03/virtuemart.png"><img src="http://blog.yann.info/wp-content/uploads/2010/03/virtuemart-300x146.png" alt="virtuemart" title="virtuemart" width="300" height="146" class="alignnone size-medium wp-image-691" /></a></p>
<h3>Gérer les traductions</h3>
<p>La page qui gère les traductions de l&#8217;interface d&#8217;ajout des taux d&#8217;expédition est :<br />
<strong>/www/administrator/components/com_virtuemart/languages/shipping/french.php</strong><br />
Pour les erreurs, par exemple si un champs n&#8217;a pas été rempli, regardez le fichier<br />
<strong>/www/administrator/components/com_virtuemart/languages/common/french.php</strong></p>
<h3>Créer de nouveaux taux</h3>
<p>Le formulaire qui gère la création de nouveaux taux est :<br />
<strong>/www/administrator/components/com_virtuemart/html/shipping.rate_form.php</strong></p>
<h3>Fichiers d&#8217;ajouts de taux</h3>
<p>Les classes de fonctionnement sont :<br />
<strong>/www/administrator/components/com_virtuemart/classes/ps_shipping.php</strong> qui contient les fonctions qui gèrent l&#8217;ajout/modification/suppression des taux<br />
<strong>/www/administrator/components/com_virtuemart/html/shipping.rate_form.php</strong> qui est le formulaire html d&#8217;ajout (interaction avec ps_shipping.php)<br />
<strong>/www/administrator/components/com_virtuemart/html/shipping.rate_list</strong> gère l&#8217;affichage des taux ajoutés.<br />
Dans ce fichier, les entêtes sont gérés par le tableau <strong>$columns</strong></p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$columns</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">Array</span></a><span style="color: #009900;">&#40;</span> &nbsp;<span style="color: #0000ff;">&quot;#&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;width=<span style="color: #000099; font-weight: bold;">\&quot;</span>20<span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span><span style="color: #339933;">,</span> <br />
&nbsp; &nbsp; <span style="color: #0000ff;">&quot;&lt;input type=<span style="color: #000099; font-weight: bold;">\&quot;</span>checkbox<span style="color: #000099; font-weight: bold;">\&quot;</span> name=<span style="color: #000099; font-weight: bold;">\&quot;</span>toggle<span style="color: #000099; font-weight: bold;">\&quot;</span> value=<span style="color: #000099; font-weight: bold;">\&quot;</span><span style="color: #000099; font-weight: bold;">\&quot;</span> onclick=<span style="color: #000099; font-weight: bold;">\&quot;</span>checkAll(&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$num_rows</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;)<span style="color: #000099; font-weight: bold;">\&quot;</span> /&gt;&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;width=<span style="color: #000099; font-weight: bold;">\&quot;</span>20<span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$VM_LANG</span><span style="color: #339933;">-&gt;</span>_<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'PHPSHOP_SHIPPING_RATE_LIST_CARRIER_LBL'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$VM_LANG</span><span style="color: #339933;">-&gt;</span>_<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'PHPSHOP_SHIPPING_RATE_LIST_RATE_NAME'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$VM_LANG</span><span style="color: #339933;">-&gt;</span>_<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'E_REMOVE'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;width=<span style="color: #000099; font-weight: bold;">\&quot;</span>5%<span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span><br />
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>Et les cellules par l&#8217;objet <strong>$listObj</strong></p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$listObj</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addCell</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">f</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;shipping_rate_value&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p><em>Notez que les constantes, qui sont donc par convention en majuscules comme <strong>PHPSHOP_SHIPPING_RATE_LIST_CARRIER_LBL</strong> sont traduites grâce aux fichiers de traduction que j&#8217;ai présenté plus haut, alors que <strong>$db->f(&laquo;&nbsp;shipping_rate_value&nbsp;&raquo;)</strong> correspond à un champ en base de données</em></p>
<h3>La classe expPerso </h3>
<p>Au début je vous ai parlé de expPerso.php qui contient la classe expPerso. Ce fichier contient la requête qui après validation de la commande affiche les possibilités d&#8217;expéditions.</p>
<p>exemple un morceau de la requête qui affiche un les frais d&#8217;expédition en fonction du poids de la commande</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$q</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;shipping_rate_weight_start &lt; = '&quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$d</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;weight&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;'AND &quot;</span> <span style="color: #339933;">;</span><br />
<span style="color: #000088;">$q</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;shipping_rate_weight_end &gt;= '&quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$d</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;weight&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;'&quot;</span> <span style="color: #339933;">;</span></div></div>
<p>Pour utiliser le montant de la commande appelez tout simplement la variable globale <strong>$total</strong></p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">function</span> list_rates<span style="color: #009900;">&#40;</span> <span style="color: #339933;">&amp;</span><span style="color: #000088;">$d</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$total</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#91;</span><span style="color: #339933;">...</span><span style="color: #009900;">&#93;</span></div></div>
<p>Le code postal, lui par exemple est déjà récupéré par la requête</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$zip</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$dbc</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">f</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;zip&quot;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">;</span></div></div>
<p>Bon, voilà de quoi vous éclairer un peu, maintenant à vos claviers pour faire vos modifications&#8230;</p>
<div id="crp_related"><h3>A consulter également :</h3><ul><li><a href="http://blog.yann.info/2010/03/12/installer-php_sous_ubuntu_lamp-linux-apache-mysql-php-sous-ubuntu/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Installer PHP sous Ubuntu, soit LAMP (Linux Apache MySQL PHP)" title="Installer PHP sous Ubuntu, soit LAMP (Linux Apache MySQL PHP)" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/03/12/installer-php_sous_ubuntu_lamp-linux-apache-mysql-php-sous-ubuntu/" rel="bookmark" class="crp_title">Installer PHP sous Ubuntu, soit LAMP (Linux Apache MySQL PHP)</a></li><li><a href="http://blog.yann.info/2010/03/23/retour-sur-la-joomla-day/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Retour sur la Joomla Day" title="Retour sur la Joomla Day" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/03/23/retour-sur-la-joomla-day/" rel="bookmark" class="crp_title">Retour sur la Joomla Day</a></li><li><a href="http://blog.yann.info/2010/03/31/linux-ubuntu-et-les-depots-logiciels/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Linux Ubuntu et les dépôts logiciels" title="Linux Ubuntu et les dépôts logiciels" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/03/31/linux-ubuntu-et-les-depots-logiciels/" rel="bookmark" class="crp_title">Linux Ubuntu et les dépôts logiciels</a></li><li><a href="http://blog.yann.info/2010/04/13/importer-des-fichiers-tres-volumineux-pour-phpmyadmin/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Importer des fichiers trop volumineux pour PHPmyAdmin" title="Importer des fichiers trop volumineux pour PHPmyAdmin" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/04/13/importer-des-fichiers-tres-volumineux-pour-phpmyadmin/" rel="bookmark" class="crp_title">Importer des fichiers trop volumineux pour PHPmyAdmin</a></li><li><a href="http://blog.yann.info/2010/03/02/jquery-ou-comment-simplifier-ajax/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="jQuery ou comment simplifier les requêtes Ajax" title="jQuery ou comment simplifier les requêtes Ajax" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/03/02/jquery-ou-comment-simplifier-ajax/" rel="bookmark" class="crp_title">jQuery ou comment simplifier les requêtes Ajax</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://blog.yann.info/2010/03/20/creez-votre-module-dexpedition-personnalise-joomla-virtuemart/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Installer PHP sous Ubuntu, soit LAMP (Linux Apache MySQL PHP)</title>
		<link>http://blog.yann.info/2010/03/12/installer-php_sous_ubuntu_lamp-linux-apache-mysql-php-sous-ubuntu/</link>
		<comments>http://blog.yann.info/2010/03/12/installer-php_sous_ubuntu_lamp-linux-apache-mysql-php-sous-ubuntu/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 22:56:08 +0000</pubDate>
		<dc:creator>blog.yann</dc:creator>
				<category><![CDATA[Developpement]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[Mysql]]></category>
		<category><![CDATA[phpMyAdmin]]></category>

		<guid isPermaLink="false">http://blog.yann.info/?p=560</guid>
		<description><![CDATA[Installation de l&#8217;environnement Pour développer en local du PHP, vous aurez besoin d&#8217;installer Apache, MySQL et PHP. Tapez dans un terminal : sudo tasksel install lamp-server Il est conseillé de mettre un mot de passe pour MySQL Une fois que c&#8217;est fait, vous pouvez tester le serveur en entrant l&#8217;adresse suivante dans votre navigateur préféré [...]]]></description>
			<content:encoded><![CDATA[<h3>Installation de l&#8217;environnement</h3>
<p>Pour développer en local du PHP, vous aurez besoin d&#8217;installer Apache, MySQL et PHP.<br />
Tapez dans un terminal :</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">sudo</span> tasksel <span style="color: #c20cb9; font-weight: bold;">install</span> lamp-server</div></div>
<p><em>Il est conseillé de mettre un mot de passe pour MySQL</em><br />
Une fois que c&#8217;est fait, vous pouvez tester le serveur en entrant l&#8217;adresse suivante dans votre navigateur préféré : <a href="http://127.0.0.1" target="_blank">http://127.0.0.1</a> ou <a href="http://localhost/" target="_blank">http://localhost/</a></p>
<p>Si vous voyez ce message :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">It works!<br />
This is the default web page for this server.<br />
The web server software is running but no content has been added, yet.</div></div>
<p>c&#8217;est que tout s&#8217;est bien passé.</p>
<h3>Changer de répertoire de travail</h3>
<p>Par défaut, la page web que vous voyez se trouve dans</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www</div></div>
<p>Ce qui n&#8217;est pas très pratique, car par défaut vous n&#8217;avez pas les droits en écriture sur ce dossier qui appartient à ROOT.</p>
<p>Puisqu&#8217;on ne va pas l&#8217;utiliser rendons ce dossier inaccessible de l&#8217;extérieur.</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">sudo</span> gedit <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>apache2<span style="color: #000000; font-weight: bold;">/</span>sites-available<span style="color: #000000; font-weight: bold;">/</span>default</div></div>
<p>Recherchez le bloc délimité par <strong>&lt;Directory /var/www/&gt;</strong> et <strong>&lt;/Directory/&gt;</strong>et remplacez-le contenu par :</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;</span>directory <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">&gt;</span><br />
&nbsp; &nbsp; Options Indexes FollowSymLinks MultiViews<br />
&nbsp; &nbsp; AllowOverride None<br />
&nbsp; &nbsp; Order Deny,Allow<br />
&nbsp; &nbsp; Deny from all<br />
&nbsp; &nbsp; Allow from 127.0.0.1&nbsp; &nbsp; &nbsp; &nbsp; <br />
<span style="color: #000000; font-weight: bold;">&lt;/</span>directory<span style="color: #000000; font-weight: bold;">&gt;</span></div></div>
<p><em>Ajoutez également <strong> Allow from 192.168.0.0/24</strong> si vous voulez y accéder de votre réseau local, si vos adresses IP local sont en 192.168.1.0, adaptez évidemment.</em></p>
<p>Ouvrez ensuite le fichier httpd.conf</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">sudo</span> gedit <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>apache2<span style="color: #000000; font-weight: bold;">/</span>httpd.conf</div></div>
<p>Et ajoutez cette ligne</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">ServerName localhost</div></div>
<p>On va maintenant activer l&#8217;option userdir, qui va permettre d&#8217;activer un dossier de développement pour chaque utilisateur.</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$USER</span><span style="color: #000000; font-weight: bold;">/</span>public_html<br />
<span style="color: #c20cb9; font-weight: bold;">sudo</span> a2enmod userdir</div></div>
<p>On redémarre Apache, pour que les modifications soient prises en compte.</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>apache2 force-reload</div></div>
<p>Voilà, maintenant le dossier<strong> public_html</strong> qui se trouve dans votre espace de travail est accessible via <a href="http://127.0.0.1/~yann" target="_blank">http://127.0.0.1/~yann</a><br />
<em>Remplacez évidemment yann par votre nom d&#8217;utilisateur</em><br />
pour tester, créez un nouveau fichier <strong>test.php</strong> dans le dossier<strong> public_html</strong> et copiez-y ce code</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <br />
&nbsp; &nbsp; <span style="color: #b1b100;">echo</span> <a href="http://www.php.net/phpinfo"><span style="color: #990000;">phpinfo</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></div>
<p>Ouvrez l&#8217;URL <a href="http://127.0.0.1/~yann/test.php" target="_blank">http://127.0.0.1/~yann/test.php</a>, vous devriez voir la configuration PHP s&#8217;afficher. <strong>Si votre navigateur télécharge les fichiers au lieu de les interpréter, regardez la fin de cet article&#8230;</strong></p>
<h3>Installer phpMyAdmin</h3>
<p>Téléchargez l&#8217;archive de <a target='_blank' href="http://www.phpmyadmin.net/home_page/downloads.php">phpMyAdmin</a> et décompressez là. Renommez ensuite le dossier en phpMyAdmin puis déplacez le dans /var/www</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">mv</span> phpMyAdmin<span style="color: #000000; font-weight: bold;">/</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>phpMyAdmin</div></div>
<p>phpMyAdmin utilise le module mcrypt, alors installons-le</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> php5-mcrypt</div></div>
<p>On redémarre Apache</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>apache2 force-reload</div></div>
<p>Et voilà phpMyAdmin est accessible à l&#8217;adresse <a href="http://127.0.0.1/phpMyAdmin" target="_blank">http://127.0.0.1/phpMyAdmin</a><br />
Connectez vous avec root : mot_de_passe_que vous avez_choisi </p>
<h3>Où est mon php.ini ?</h3>
<p>Le fichier de configuration de PHP se trouve dans<strong> /etc/php5/apache2/php.ini</strong> pour désactiver <strong>short_open_tag</strong> et <strong>magic_quotes_gpc</strong> par exemple, ce qui serait une très bonne idée <img src='http://blog.yann.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
N&#8217;oubliez pas de relancer Apache</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>apache2 force-reload</div></div>
<h3>Mon navigateur télécharge les fichiers PHP au lieu de les interpréter <img src='http://blog.yann.info/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </h3>
<p>Sous Ubuntu 10.04, php est désactivé quand vous utilisez le module a2enmod. Pour éviter que le navigateur télécharge les fichiers php, éditez le fichier</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">sudo</span> gedit <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>apache2<span style="color: #000000; font-weight: bold;">/</span>mods-enabled<span style="color: #000000; font-weight: bold;">/</span>php5.conf</div></div>
<p>Et commentez les lignes ci dessous :</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">#&lt;ifmodule mod_userdir.c&gt;</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &lt;directory /home/*/public_html&gt;</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; php_admin_value engine Off</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp;&lt;/directory&gt;</span><br />
<span style="color: #666666; font-style: italic;">#&lt;/ifmodule&gt;</span></div></div>
<p>Et on relance apache&#8230;</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>apache2 force-reload</div></div>
<div id="crp_related"><h3>A consulter également :</h3><ul><li><a href="http://blog.yann.info/2010/02/16/yamj-sur-popcorn-a-200-avec-ubuntu/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Yamj sur PopCorn A-200 avec ubuntu" title="Yamj sur PopCorn A-200 avec ubuntu" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/02/16/yamj-sur-popcorn-a-200-avec-ubuntu/" rel="bookmark" class="crp_title">Yamj sur PopCorn A-200 avec ubuntu</a></li><li><a href="http://blog.yann.info/2010/03/31/linux-ubuntu-et-les-depots-logiciels/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Linux Ubuntu et les dépôts logiciels" title="Linux Ubuntu et les dépôts logiciels" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/03/31/linux-ubuntu-et-les-depots-logiciels/" rel="bookmark" class="crp_title">Linux Ubuntu et les dépôts logiciels</a></li><li><a href="http://blog.yann.info/2010/02/14/moblock-peerblock-sous-ubuntu/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Moblock : peerblock pour ubuntu" title="Moblock : peerblock pour ubuntu" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/02/14/moblock-peerblock-sous-ubuntu/" rel="bookmark" class="crp_title">Moblock : peerblock pour ubuntu</a></li><li><a href="http://blog.yann.info/2010/04/13/importer-des-fichiers-tres-volumineux-pour-phpmyadmin/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Importer des fichiers trop volumineux pour PHPmyAdmin" title="Importer des fichiers trop volumineux pour PHPmyAdmin" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/04/13/importer-des-fichiers-tres-volumineux-pour-phpmyadmin/" rel="bookmark" class="crp_title">Importer des fichiers trop volumineux pour PHPmyAdmin</a></li><li><a href="http://blog.yann.info/2010/02/21/ubuntu-firefox-et-thunderbird-en-francais/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Ubuntu : Firefox et Thunderbird en français" title="Ubuntu : Firefox et Thunderbird en français" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/02/21/ubuntu-firefox-et-thunderbird-en-francais/" rel="bookmark" class="crp_title">Ubuntu : Firefox et Thunderbird en français</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://blog.yann.info/2010/03/12/installer-php_sous_ubuntu_lamp-linux-apache-mysql-php-sous-ubuntu/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Alterner les couleurs des lignes d&#8217;un tableau (PHP ou jQuery)</title>
		<link>http://blog.yann.info/2010/03/09/alterner-les-couleurs-des-lignes-dun-tableau-php-ou-jquery/</link>
		<comments>http://blog.yann.info/2010/03/09/alterner-les-couleurs-des-lignes-dun-tableau-php-ou-jquery/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 18:55:26 +0000</pubDate>
		<dc:creator>blog.yann</dc:creator>
				<category><![CDATA[Developpement]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Even]]></category>
		<category><![CDATA[Odd]]></category>
		<category><![CDATA[Tableau]]></category>

		<guid isPermaLink="false">http://blog.yann.info/?p=426</guid>
		<description><![CDATA[Pour faciliter la lecture d&#8217;un tableau il est fréquent d&#8217;alterner la couleur de chaque ligne. Le principe est d&#8217;attribuer aux lignes paires un style et un autre aux lignes impaires. En PHP Voir la démo Créons tout d&#8217;abord 2 styles. .style1&#123; &#160; &#160; background-color : #F2F1EB; &#125; .style2&#123; &#160; &#160; background-color : #DAE9F4; &#125; En [...]]]></description>
			<content:encoded><![CDATA[<p>Pour faciliter la lecture d&#8217;un tableau il est fréquent d&#8217;alterner la couleur de chaque ligne.<br />
Le principe est d&#8217;attribuer aux lignes paires un style et un autre aux lignes impaires.</p>
<h3>En PHP</h3>
<p><a href="http://blog.yann.info/demo/tabCouleur.php" target='_blank'>Voir la démo</a><br />
Créons tout d&#8217;abord 2 styles.</p>
<div class="codecolorer-container css default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">.style1<span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">background-color</span> <span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#F2F1EB</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span><br />
.style2<span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">background-color</span> <span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#DAE9F4</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span></div></div>
<style>
.style1{
    background-color : #F2F1EB;
}
.style2{
    background-color : #DAE9F4;
}
</style>
<p>En PHP on utilise le modulo % (reste de la division) . Le modulo d&#8217;une division par 2 permet de savoir si la ligne est paire ou impaire, il ne reste plus qu&#8217;à affecter un style pour chacun des 2 cas.</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;table class='monTab'&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">&lt;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">%</span><span style="color:#800080;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$classe</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;style1&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$classe</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;style2&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">echo</span> &nbsp;<span style="color: #0000ff;">&quot;&lt;tr class='<span style="color: #006699; font-weight: bold;">$classe</span>'&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;td&gt;ligne <span style="color: #006699; font-weight: bold;">$i</span>&lt;/td&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;td&gt;ligne <span style="color: #006699; font-weight: bold;">$i</span>&lt;/td&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt; /tr&gt; &quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;/table&gt;&quot;</span><span style="color: #339933;">;</span></div></div>
<p>On affecte à la variable <strong>$classe</strong> l&#8217;un ou l&#8217;autre des styles et on l&#8217;applique à la ligne. </p>
<h3>En jQuery</h3>
<p><a href="http://blog.yann.info/demo/tabCouleurJquery.php" target='_blank'>Voir la démo</a><br />
Partons du  même tableau.</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;table class='monTab'&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">&lt;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">echo</span> &nbsp;<span style="color: #0000ff;">&quot;&lt;tr&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;td&gt;ligne <span style="color: #006699; font-weight: bold;">$i</span>&lt;/td&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;td&gt;ligne <span style="color: #006699; font-weight: bold;">$i</span>&lt;/td&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt; /tr&gt; &quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;/table&gt;&quot;</span><span style="color: #339933;">;</span></div></div>
<p>et appliquons un style différent selon que les lignes soient paires (even) ou impaires (odd)</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'table.monTab tr:nth-child(even)'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'style1'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'table.monTab tr:nth-child(odd)'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'style2'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>On applique donc le style <strong>style1</strong>  à chaque ligne paire <strong>(even)</strong> et le <strong>style2</strong> à chaque ligne impaire  <strong>(odd)</strong> du/des tableau(x) dont la classe est <strong>monTab</strong> grâce à la méthode <a href='http://api.jquery.com/addClass/' target='_blank'>addClass</a> de jQuery, qui ajoute une classe à un élément.<br />
<br />
<em>L&#8217;utilisation de <strong>nth-child</strong> permet d&#8217;éviter que jQuery se perde si vous avez plusieurs tableaux dans votre page, en effet sinon il continu d&#8217;attribuer les couleurs sans repartir à zéro. Ainsi la première ligne du tableau 1 pourrait être bleue alors que la première ligne du tableau 2 serait blanche.</em></p>
<div id="crp_related"><h3>A consulter également :</h3><ul><li><a href="http://blog.yann.info/2010/03/02/slidetoggle-simplifiez-vous-la-vie-pour-afficher-et-masquer-un-element/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="SlideToggle : simplifiez vous la vie pour afficher et masquer un élément" title="SlideToggle : simplifiez vous la vie pour afficher et masquer un élément" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/03/02/slidetoggle-simplifiez-vous-la-vie-pour-afficher-et-masquer-un-element/" rel="bookmark" class="crp_title">SlideToggle : simplifiez vous la vie pour afficher et masquer un élément</a></li><li><a href="http://blog.yann.info/2010/03/15/menu-yvette-horner-en-jquery-menu-accordeon/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Menu Yvette Horner en jQuery (menu accordéon)" title="Menu Yvette Horner en jQuery (menu accordéon)" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/03/15/menu-yvette-horner-en-jquery-menu-accordeon/" rel="bookmark" class="crp_title">Menu Yvette Horner en jQuery (menu accordéon)</a></li><li><a href="http://blog.yann.info/2010/04/13/importer-des-fichiers-tres-volumineux-pour-phpmyadmin/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Importer des fichiers trop volumineux pour PHPmyAdmin" title="Importer des fichiers trop volumineux pour PHPmyAdmin" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/04/13/importer-des-fichiers-tres-volumineux-pour-phpmyadmin/" rel="bookmark" class="crp_title">Importer des fichiers trop volumineux pour PHPmyAdmin</a></li><li><a href="http://blog.yann.info/2010/03/10/acces-a-lelement-selectionne-dun-select-en-jquery/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Accès à l&#8217;élément sélectionné d&#8217;un select en jQuery" title="Accès à l&#8217;élément sélectionné d&#8217;un select en jQuery" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/03/10/acces-a-lelement-selectionne-dun-select-en-jquery/" rel="bookmark" class="crp_title">Accès à l&#8217;élément sélectionné d&#8217;un select en jQuery</a></li><li><a href="http://blog.yann.info/2010/03/02/jquery-ou-comment-simplifier-ajax/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="jQuery ou comment simplifier les requêtes Ajax" title="jQuery ou comment simplifier les requêtes Ajax" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/03/02/jquery-ou-comment-simplifier-ajax/" rel="bookmark" class="crp_title">jQuery ou comment simplifier les requêtes Ajax</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://blog.yann.info/2010/03/09/alterner-les-couleurs-des-lignes-dun-tableau-php-ou-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Numéro de téléphone avec des points et conversion de date en français avec PHP</title>
		<link>http://blog.yann.info/2010/03/08/numero-de-telephone-avec-des-points-et-conversion-de-date-en-francais-avec-php/</link>
		<comments>http://blog.yann.info/2010/03/08/numero-de-telephone-avec-des-points-et-conversion-de-date-en-francais-avec-php/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 22:55:51 +0000</pubDate>
		<dc:creator>blog.yann</dc:creator>
				<category><![CDATA[Developpement]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[date]]></category>
		<category><![CDATA[expressions regulieres]]></category>
		<category><![CDATA[format]]></category>
		<category><![CDATA[telephone]]></category>
		<category><![CDATA[wordwrap]]></category>

		<guid isPermaLink="false">http://blog.yann.info/?p=486</guid>
		<description><![CDATA[Téléphone Lorsque vous demandez à un visiteur de saisir son numéro de téléphone, il est plus simple pour lui de le taper sans utiliser de points ou d&#8217;espaces etc&#8230; Pourtant lorsque vous l&#8217;affichez c&#8217;est quand même plus lisible que les chiffres ne soient pas tous collés. Une possibilité, consiste à utiliser wordwrap $tel = &#34;0145666666&#34;; [...]]]></description>
			<content:encoded><![CDATA[<h3>Téléphone</h3>
<p>Lorsque vous demandez à un visiteur de saisir son numéro de téléphone, il est plus simple pour lui de le taper sans utiliser de points ou d&#8217;espaces etc&#8230; Pourtant lorsque vous l&#8217;affichez c&#8217;est quand même plus lisible que les chiffres ne soient pas tous collés.<br />
Une possibilité, consiste à utiliser <strong><a target='_blank' href="http://php.net/manual/fr/function.wordwrap.php">wordwrap</a></strong></p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$tel</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;0145666666&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$tel_formate</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/wordwrap"><span style="color: #990000;">wordwrap</span></a> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$tel</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'.'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// 01.45.66.66.66</span></div></div>
<p>string  <strong>wordwrap </strong>( string  <strong> str</strong>  , int   <strong>width</strong>  , string   <strong>break</strong>  , bool  <strong> cut</strong>  )<br />
<a target='_blank' href="http://php.net/manual/fr/function.wordwrap.php">wordwrap</a> retourne la chaîne <strong>str </strong>, après avoir inséré break tous les <strong>width </strong>caractères.</p>
<h3>Convertir une date au format français</h3>
<p>Si vous récupérez une date issue de votre base mysql par exemple, le format sera YYYY-MM-DD, cependant pour l&#8217;afficher à l&#8217;écran les français préféreront une date au format JJ/MM/AAAA.<br />
Une solution consiste à utiliser <a target='_blank' href="http://php.net/manual/fr/function.preg-replace.php">preg_replace</a> qui recherche et remplace par expression rationnelle.</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$maDate</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/preg_replace"><span style="color: #990000;">preg_replace</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/^(.{4})-(.{2})-(.{2})$/'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'$3/$2/$1'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$maDate</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>mixed  <strong>preg_replace</strong> ( mixed   <strong>pattern  </strong>, mixed   <strong>replacement  </strong>, mixed   <strong>subject  </strong>, int   <strong>limit  </strong>, int   <strong>count  </strong>)<br />
<a target='_blank' href="http://php.net/manual/fr/function.preg-replace.php">preg_replace</a> analyse <strong>subject  </strong>pour trouver l&#8217;expression rationnelle <strong>pattern  </strong>et remplace les résultats par <strong>replacement  </strong></p>
<h3>Téléphone 2</h3>
<p>On peut aussi modifier le numéro de téléphone avec <a target='_blank' href="http://php.net/manual/fr/function.preg-replace.php">preg_replace</a>.<br />
Avec par exemple :</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$tel</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/preg_replace"><span style="color: #990000;">preg_replace</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/(\d{2}) *(?!\z)/&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$1</span>.&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$tel</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p><em>NB : pour wordwrap comme pour l&#8217;exemple ci-dessus, on n&#8217;a pas vérifié la taille de la chaine !</em></p>
<div id="crp_related"><h3>A consulter également :</h3><ul><li><a href="http://blog.yann.info/2010/09/13/ajouter-un-nouveau-compte-gmail-a-android/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Ajouter un nouveau compte Gmail à Android" title="Ajouter un nouveau compte Gmail à Android" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/09/13/ajouter-un-nouveau-compte-gmail-a-android/" rel="bookmark" class="crp_title">Ajouter un nouveau compte Gmail à Android</a></li><li><a href="http://blog.yann.info/2010/03/07/nabaztag-et-google-reader-opml/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Nabaztag et Google Reader (OPML)" title="Nabaztag et Google Reader (OPML)" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/03/07/nabaztag-et-google-reader-opml/" rel="bookmark" class="crp_title">Nabaztag et Google Reader (OPML)</a></li><li><a href="http://blog.yann.info/2010/09/01/evolution-de-comptes-amis/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Evolutions de Comptes Amis" title="Evolutions de Comptes Amis" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/09/01/evolution-de-comptes-amis/" rel="bookmark" class="crp_title">Evolutions de Comptes Amis</a></li><li><a href="http://blog.yann.info/2010/03/10/acces-a-lelement-selectionne-dun-select-en-jquery/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Accès à l&#8217;élément sélectionné d&#8217;un select en jQuery" title="Accès à l&#8217;élément sélectionné d&#8217;un select en jQuery" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/03/10/acces-a-lelement-selectionne-dun-select-en-jquery/" rel="bookmark" class="crp_title">Accès à l&#8217;élément sélectionné d&#8217;un select en jQuery</a></li><li><a href="http://blog.yann.info/2010/02/12/nabaztag-dis-moi-ce-que-je-veux-entendre/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Nabaztag, dis moi ce que je veux entendre !" title="Nabaztag, dis moi ce que je veux entendre !" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/02/12/nabaztag-dis-moi-ce-que-je-veux-entendre/" rel="bookmark" class="crp_title">Nabaztag, dis moi ce que je veux entendre !</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://blog.yann.info/2010/03/08/numero-de-telephone-avec-des-points-et-conversion-de-date-en-francais-avec-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nabaztag et Google Reader (OPML)</title>
		<link>http://blog.yann.info/2010/03/07/nabaztag-et-google-reader-opml/</link>
		<comments>http://blog.yann.info/2010/03/07/nabaztag-et-google-reader-opml/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 16:21:16 +0000</pubDate>
		<dc:creator>blog.yann</dc:creator>
				<category><![CDATA[Nabaztag]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Google Reader]]></category>
		<category><![CDATA[OPML]]></category>
		<category><![CDATA[parser]]></category>
		<category><![CDATA[Parseur]]></category>

		<guid isPermaLink="false">http://blog.yann.info/?p=453</guid>
		<description><![CDATA[Voici un petit script permettant à votre lapin de vous donner les dernières news provenant de l&#8217;ensemble de vos flux Google Reader. Vous pouvez tester le résultat ici Parser le fichier OPML Pour cela, nous allons parser le fichier OPML que vous pouvez récupérer en cliquant sur Gérer mes abonnements (tout en bas à gauche [...]]]></description>
			<content:encoded><![CDATA[<p>Voici un petit script permettant à votre lapin de vous donner les dernières news provenant de l&#8217;ensemble de vos flux <strong>Google Reade</strong>r.<br />
Vous pouvez tester le <a target='_blank' href="http://blog.yann.info/demo/GreaderParse.php">résultat ici</a><br />
</p>
<h3>Parser le fichier OPML</h3>
<p>Pour cela, nous allons parser le fichier <strong>OPML </strong>que vous pouvez récupérer en cliquant sur <strong>Gérer mes abonnements</strong> (tout en bas à gauche de votre interface Google Reader) puis <strong>Importer/Exporter </strong>et enfin <strong>Exporter vos abonnements.</strong></p>
<p>D&#8217;abord il faut extraire les différents flux du fichier OPML, pour cela j&#8217;ai créé une fonction <strong>recupFlux </strong>récursive.</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">// Flux google reader</span><br />
<span style="color: #000088;">$url_flux_rss</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;http://*******/google-reader-subscriptions.xml&quot;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// à remplacer évidemment</span><br />
<span style="color: #000088;">$tabFlux</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$tabNewRSS</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">function</span> recupFlux<span style="color: #009900;">&#40;</span><span style="color: #000088;">$xml</span><span style="color: #339933;">,</span><span style="color: #000088;">$prof</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$tabFlux</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$xml</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">children</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$child</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$child</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'xmlUrl'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$tabFlux</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$child</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'xmlUrl'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; recupFlux<span style="color: #009900;">&#40;</span><span style="color: #000088;">$child</span><span style="color: #339933;">,</span><span style="color: #000088;">$prof</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #000088;">$opml</span><span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> SimpleXMLElement<span style="color: #009900;">&#40;</span><span style="color: #000088;">$url_flux_rss</span><span style="color: #339933;">,</span><span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">,</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
recupFlux<span style="color: #009900;">&#40;</span><span style="color: #000088;">$opml</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">body</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>Vous obtenez ainsi un tableau $tabFlux contenant tous les flux.</p>
<p>Ensuite vous pouvez aller chercher chacune des 2 dernières news de chaque flux (par exemple).</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$tabFlux</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$flux</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// recup des 2 dernières infos de chaque flux</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$limite</span>       <span style="color: #339933;">=</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// nombre d'actus à afficher</span><br />
<br />
&nbsp; &nbsp; <span style="color: #000088;">$Xml</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><a href="http://www.php.net/simplexml_load_file"><span style="color: #990000;">simplexml_load_file</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$flux</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// charge le fichier</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$Xml</span> <span style="color: #339933;">===</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href="http://www.php.net/die"><span style="color: #990000;">die</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Erreur Flux, vérifiez l'adresse du flux&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$Xml</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">channel</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">item</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$mon_rss</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$titre</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>string<span style="color: #009900;">&#41;</span> <a href="http://www.php.net/utf8_decode"><span style="color: #990000;">utf8_decode</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$mon_rss</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">title</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$quand</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>string<span style="color: #009900;">&#41;</span> <a href="http://www.php.net/utf8_decode"><span style="color: #990000;">utf8_decode</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$mon_rss</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">pubDate</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$i</span><span style="color: #339933;">++;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$tabNewRSS</span><span style="color: #009900;">&#91;</span><a href="http://www.php.net/strtotime"><span style="color: #990000;">strtotime</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$quand</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$titre</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// on créé un nouveau tableau</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">&gt;=</span> <span style="color: #000088;">$limite</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #009900;">&#125;</span><br />
<a href="http://www.php.net/krsort"><span style="color: #990000;">krsort</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$tabNewRSS</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// trie le tableau pour avoir les dernières news dans l'ordre tous flux confondus</span></div></div>
<p><em>J&#8217;ai mis en clé du tableau le timestamp de la publication de la news (dans l&#8217;absolu, si 2 news avaient la même date la 2ème écraserait l&#8217;autre&#8230;)</em></p>
<h3>Parle mon lapin</h3>
<p>Il ne reste plus qu&#8217;à donner la parole à votre lapin, comme vu dans <a target='_blank' href="http://blog.yann.info/2010/02/12/nabaztag-dis-moi-ce-que-je-veux-entendre/">l&#8217;article précédent</a></p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #b1b100;">include</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'nabClass.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$serial</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;****&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$token</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;****&quot;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000088;">$nabaztag</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> nabaztag<span style="color: #009900;">&#40;</span><span style="color: #000088;">$serial</span><span style="color: #339933;">,</span><span style="color: #000088;">$token</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$phrase</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$tabNewRSS</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$final</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$phrase</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$final</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;. &quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000088;">$phrase</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/html_entity_decode"><span style="color: #990000;">html_entity_decode</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$phrase</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$phrase</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$nabaztag</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">speak</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/utf8_encode"><span style="color: #990000;">utf8_encode</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$phrase</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000088;">$nabaztag</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">display_api_response</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>Vous pouvez tester le <a target='_blank' href="http://blog.yann.info/demo/GreaderParse.php">résultat ici</a><br />
A noter que ce script envoi à votre Nabaztag les infos à un instant T, mais on pourrait très facilement recréer un nouveau fichier RSS à partir de <strong>$tabNewRSS</strong> pour le soumettre à l&#8217;interface de Violet, ainsi votre Lapin vous tiendrait au courant au fur et à mesure des nouvelles informations&#8230;</p>
<h3>Générer un nouveau flux RSS</h3>
<p>Le but est de soumettre à l&#8217;interface de violet la page qui va générer le flux RSS qui mixe les flux de notre Google Reader.<br />
Première chose, indiquez que le résultat sera du XML, avec la balise <strong>Header</strong></p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><a href="http://www.php.net/header"><span style="color: #990000;">header</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Content-Type: text/xml;charset=utf-8&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>Ensuite, au lieu d&#8217;envoyer le texte au Nabaztag, nous allons générer un flux RSS à partir du tableau <strong>$tabNewRSS</strong> que nous avons créé ci-dessus.</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$rss</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'&lt; ?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;'</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$rss</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;rss version=&quot;2.0&quot;&gt;'</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$rss</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;channel&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$rss</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;title&gt;Mon Google Reader RSS&lt;/title&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$rss</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;link&gt;http://blog.yann.info&lt;/link&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$rss</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;description&gt;Compilation de mes flux Google Reader&lt;/description&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$rss</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;language&gt;fr-FR&lt;/language&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$tabNewRSS</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$final</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$rss</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;item&gt;&quot;</span><span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$rss</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;title&gt;&quot;</span> <span style="color: #339933;">.</span> clean<span style="color: #009900;">&#40;</span><span style="color: #000088;">$final</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;&lt;/title&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$rss</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;link&gt;http://blog.yann.info&lt;/link&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$rss</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;pubdate&gt;&quot;</span><span style="color: #339933;">.</span><a href="http://www.php.net/date"><span style="color: #990000;">date</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;D, d M Y H:i:s&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&lt;/pubdate&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$rss</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;description&gt;&lt;/description&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$rss</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;/item&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000088;">$rss</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;/channel&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$rss</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;/rss&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$rss</span><span style="color: #339933;">;</span></div></div>
<p>Pour voir un exemple de ce que ça peut donner <a target='_blank' href="http://blog.yann.info/demo/GreaderParseRSS.php">cliquez ici</a><br />
Le résultat est un nouveau flux RSS, que vous pouvez soumettre à l&#8217;interface Violet. Les news sont à chaque fois régénérées donc votre lapin ne vous donnera que les dernières news dès qu&#8217;il y aura du nouveau.<br />
<em>Comme le lapin ne lira que le titre du RSS je n&#8217;ai rempli que cette partie dynamiquement.</em></p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">function</span> clean<span style="color: #009900;">&#40;</span><span style="color: #000088;">$titre</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">return</span> <a href="http://www.php.net/utf8_encode"><span style="color: #990000;">utf8_encode</span></a><span style="color: #009900;">&#40;</span><a href="http://www.php.net/htmlspecialchars"><span style="color: #990000;">htmlspecialchars</span></a><span style="color: #009900;">&#40;</span><a href="http://www.php.net/stripslashes"><span style="color: #990000;">stripslashes</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$titre</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<div id="crp_related"><h3>A consulter également :</h3><ul><li><a href="http://blog.yann.info/2010/02/12/nabaztag-dis-moi-ce-que-je-veux-entendre/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Nabaztag, dis moi ce que je veux entendre !" title="Nabaztag, dis moi ce que je veux entendre !" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/02/12/nabaztag-dis-moi-ce-que-je-veux-entendre/" rel="bookmark" class="crp_title">Nabaztag, dis moi ce que je veux entendre !</a></li><li><a href="http://blog.yann.info/2010/03/06/debuter-avec-son-nabaztag/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Débuter avec son Nabaztag" title="Débuter avec son Nabaztag" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/03/06/debuter-avec-son-nabaztag/" rel="bookmark" class="crp_title">Débuter avec son Nabaztag</a></li><li><a href="http://blog.yann.info/2010/03/26/les-evenements-google-agenda-dictes-par-votre-nabaztag-anniversaires-rdv-etc/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Les évènements Google Agenda dictés par votre Nabaztag (anniversaires, rdv etc&#8230;)" title="Les évènements Google Agenda dictés par votre Nabaztag (anniversaires, rdv etc&#8230;)" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/03/26/les-evenements-google-agenda-dictes-par-votre-nabaztag-anniversaires-rdv-etc/" rel="bookmark" class="crp_title">Les évènements Google Agenda dictés par votre Nabaztag (anniversaires, rdv etc&#8230;)</a></li><li><a href="http://blog.yann.info/2010/04/02/vos-rendez-vous-google-agenda-lus-par-votre-nabaztag/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Vos rendez-vous Google Agenda lus par votre Nabaztag" title="Vos rendez-vous Google Agenda lus par votre Nabaztag" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/04/02/vos-rendez-vous-google-agenda-lus-par-votre-nabaztag/" rel="bookmark" class="crp_title">Vos rendez-vous Google Agenda lus par votre Nabaztag</a></li><li><a href="http://blog.yann.info/2010/03/09/alterner-les-couleurs-des-lignes-dun-tableau-php-ou-jquery/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Alterner les couleurs des lignes d&#8217;un tableau (PHP ou jQuery)" title="Alterner les couleurs des lignes d&#8217;un tableau (PHP ou jQuery)" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/03/09/alterner-les-couleurs-des-lignes-dun-tableau-php-ou-jquery/" rel="bookmark" class="crp_title">Alterner les couleurs des lignes d&#8217;un tableau (PHP ou jQuery)</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://blog.yann.info/2010/03/07/nabaztag-et-google-reader-opml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mysql : ON DUPLICATE KEY UPDATE</title>
		<link>http://blog.yann.info/2010/03/04/mysql-on-duplicate-key-update/</link>
		<comments>http://blog.yann.info/2010/03/04/mysql-on-duplicate-key-update/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 12:24:42 +0000</pubDate>
		<dc:creator>blog.yann</dc:creator>
				<category><![CDATA[Developpement]]></category>
		<category><![CDATA[Mysql]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Pratique]]></category>
		<category><![CDATA[ON DUPLICATE KEY]]></category>

		<guid isPermaLink="false">http://blog.yann.info/?p=378</guid>
		<description><![CDATA[Une petite clause bien pratique : ON DUPLICATE KEY UPDATE. Imaginez que vous vouliez mettre à jour un enregistrement dans votre base dans le cas ou celui ci existe déjà et sinon, s&#8217;il n&#8217;existe pas, en créer un nouveau. Une solution serait de faire un SELECT sur la clé, et soit un UPDATE ou un INSERT [...]]]></description>
			<content:encoded><![CDATA[<p>Une petite clause bien pratique : <strong>ON DUPLICATE KEY UPDATE</strong>.<br />
Imaginez que vous vouliez <span style="color: #3366ff;">mettre à jour</span> un enregistrement dans votre base dans le cas ou celui ci existe déjà et sinon, s&#8217;il n&#8217;existe pas, en <span style="color: #3366ff;">créer un nouveau</span>. Une solution serait de faire un <strong>SELECT </strong>sur la clé, et soit un <strong>UPDATE </strong>ou un <strong>INSERT </strong>selon que la clé existe ou non. Une autre solution serait de faire un <strong>UPDATE </strong>et si <strong>mysql_affected_rows</strong> == 0 alors vous faites un <strong>INSERT</strong>&#8230; Pourquoi pas.</p>
<p>Mais MySQL permet de faire tout ça <strong>en une seule requête</strong> !</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">INSERT INTO maTable <span style="color: #009900;">&#40;</span>id_table<span style="color: #339933;">,</span>champ_table<span style="color: #009900;">&#41;</span><br />
VALUES <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'152'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'valeur à modifier'</span><span style="color: #009900;">&#41;</span><br />
ON DUPLICATE <a href="http://www.php.net/key"><span style="color: #990000;">KEY</span></a> UPDATE<br />
champ_table<span style="color: #339933;">=</span><span style="color: #0000ff;">'valeur à modifier'</span><span style="color: #339933;">;</span></div></div>
<p><em>Bien entendu, pas besoin de mettre de <strong>WHERE </strong>dans la partie <strong>UPDATE </strong>vu que c&#8217;est parce que la clé existe que le update est exécuté</em></p>
<p>A noter que <strong>ON DUPLICATE KEY UPDATE</strong> est différent de REPLACE qui s&#8217;apparente plutôt à un DELETE + INSERT qui oblige à donner une valeur à tous les champs, alors qu&#8217;avec <strong>ON DUPLICATE KEY UPDATE</strong> on ne spécifie que les champs qui sont à modifier.</p>
<div id="crp_related"><h3>A consulter également :</h3><ul><li><a href="http://blog.yann.info/2010/04/13/importer-des-fichiers-tres-volumineux-pour-phpmyadmin/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Importer des fichiers trop volumineux pour PHPmyAdmin" title="Importer des fichiers trop volumineux pour PHPmyAdmin" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/04/13/importer-des-fichiers-tres-volumineux-pour-phpmyadmin/" rel="bookmark" class="crp_title">Importer des fichiers trop volumineux pour PHPmyAdmin</a></li><li><a href="http://blog.yann.info/2010/02/15/popcorn-a-200/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Installation du PopCorn A-200" title="Installation du PopCorn A-200" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/02/15/popcorn-a-200/" rel="bookmark" class="crp_title">Installation du PopCorn A-200</a></li><li><a href="http://blog.yann.info/2010/12/07/mise-a-jour-ota-sur-htc-desire-roote/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Mise à jour OTA sur HTC desire rooté" title="Mise à jour OTA sur HTC desire rooté" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/12/07/mise-a-jour-ota-sur-htc-desire-roote/" rel="bookmark" class="crp_title">Mise à jour OTA sur HTC desire rooté</a></li><li><a href="http://blog.yann.info/2010/03/10/acces-a-lelement-selectionne-dun-select-en-jquery/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Accès à l&#8217;élément sélectionné d&#8217;un select en jQuery" title="Accès à l&#8217;élément sélectionné d&#8217;un select en jQuery" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/03/10/acces-a-lelement-selectionne-dun-select-en-jquery/" rel="bookmark" class="crp_title">Accès à l&#8217;élément sélectionné d&#8217;un select en jQuery</a></li><li><a href="http://blog.yann.info/2010/03/09/alterner-les-couleurs-des-lignes-dun-tableau-php-ou-jquery/" rel="bookmark"><img src="http://blog.yann.info/wp-content/themes/yann/article.png" alt="Alterner les couleurs des lignes d&#8217;un tableau (PHP ou jQuery)" title="Alterner les couleurs des lignes d&#8217;un tableau (PHP ou jQuery)" width="25" height="25" border="0" class="crp_thumb" /></a> <a href="http://blog.yann.info/2010/03/09/alterner-les-couleurs-des-lignes-dun-tableau-php-ou-jquery/" rel="bookmark" class="crp_title">Alterner les couleurs des lignes d&#8217;un tableau (PHP ou jQuery)</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://blog.yann.info/2010/03/04/mysql-on-duplicate-key-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

