<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.digitalspirit.org/blog/index.php/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>DigitalSpirit - Php</title>
  <link>http://www.digitalspirit.org/blog/index.php/</link>
  <atom:link href="http://www.digitalspirit.org/blog/index.php/feed/category/Php/rss2" rel="self" type="application/rss+xml"/>
  <description>Blog personnel de Charles Rincheval contenant des descriptions de projets réalisés dans les domaines du logiciels libres en encore dans des développements de systèmes embarqués</description>
  <language>fr</language>
  <pubDate>Mon, 06 Feb 2012 16:31:19 +0100</pubDate>
  <copyright>© 2008 Charles Rincheval. Ce billet a été originellement publié sur le site www.DigitalSpirit.org</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Hyla Tpl 0.7.0 et nouveau site</title>
    <link>http://www.digitalspirit.org/blog/index.php/post/2010/07/16/Hyla-Tpl-0.7.0-et-nouveau-site</link>
    <guid isPermaLink="false">urn:md5:65a2acef9697b3b14692162d517b4d41</guid>
    <pubDate>Fri, 16 Jul 2010 17:13:00 +0200</pubDate>
    <dc:creator>hugo</dc:creator>
        <category>Php</category>
        <category>gabarit</category><category>hyla</category><category>hyla tpl</category><category>hyla_tpl</category><category>php</category><category>Php</category><category>Planet-Libre</category><category>template</category>    
    <description>    &lt;p&gt;Cela va bientôt faire un mois que Hyla Tpl est sorti en version 0.7.0 avec un tout nouveau site qui lui ai dédié&amp;nbsp;: &lt;a href=&quot;http://tpl.hyla-project.org/&quot; hreflang=&quot;fr&quot;&gt;http://tpl.hyla-project.org/&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Sur le site, vous trouverez tout ce dont vous avez besoin de savoir sur Hyla Tpl et ces développement&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Une &lt;a href=&quot;http://tpl.hyla-project.org/fr/introduction&quot; hreflang=&quot;fr&quot;&gt;introduction&lt;/a&gt; avec un descriptif des &lt;a href=&quot;http://tpl.hyla-project.org/fr/introduction#phplib-diff&quot; hreflang=&quot;fr&quot;&gt;différences entre Hyla Tpl et la PhpLib&lt;/a&gt; et un &lt;a href=&quot;http://tpl.hyla-project.org/fr/introduction#perf&quot; hreflang=&quot;fr&quot;&gt;comparatif de performance&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Une &lt;a href=&quot;http://tpl.hyla-project.org/fr/documentation&quot; hreflang=&quot;fr&quot;&gt;documentation complète&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Des &lt;a href=&quot;http://tpl.hyla-project.org/fr/exemples&quot; hreflang=&quot;fr&quot;&gt;exemples interactifs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://tpl.hyla-project.org/fr/actualite&quot; hreflang=&quot;fr&quot;&gt;L'actualité de Hyla Tpl&lt;/a&gt; centralisée&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;http://www.digitalspirit.org/blog/public/tpl.hyla-project.org_screenshot.png&quot; title=&quot;Capture d&amp;#039;écran du site tpl.hyla-project.org&quot;&gt;&lt;img src=&quot;http://www.digitalspirit.org/blog/public/.tpl.hyla-project.org_screenshot_m.jpg&quot; alt=&quot;Capture d&amp;#039;écran du site tpl.hyla-project.org&quot; title=&quot;Capture d&amp;#039;écran du site tpl.hyla-project.org, juil. 2010&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://tpl.hyla-project.org/fr/introduction#perf&quot; hreflang=&quot;fr&quot;&gt;Comparatif des performances Hyla Tpl&lt;/a&gt; contre le moteur de gabarit de la PhpLib&amp;nbsp;:
&lt;br /&gt;
&lt;a href=&quot;http://www.digitalspirit.org/blog/public/tpl.hyla-project.org_chart.png&quot; title=&quot;Comparatif performance Hyla Tpl / Phplib&quot;&gt;&lt;img src=&quot;http://www.digitalspirit.org/blog/public/.tpl.hyla-project.org_chart_sq.jpg&quot; alt=&quot;Comparatif performance Hyla Tpl / Phplib&quot; title=&quot;Comparatif performance Hyla Tpl / Phplib, juil. 2010&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Concernant les nouveautés de cette nouvelle version de Hyla Tpl sort en version 0.7.0, les voici&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Il est dorénavant possible de définir une &lt;a href=&quot;http://tpl.hyla-project.org/fr/documentation#var-default-val&quot; hreflang=&quot;fr&quot;&gt;valeur par défaut à une variable&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ajout de &lt;a href=&quot;http://tpl.hyla-project.org/fr/documentation#func-list-import&quot; hreflang=&quot;fr&quot;&gt;la fonction import&lt;/a&gt; permettant de charger un fichier tpl depuis la vue&lt;/li&gt;
&lt;li&gt;Possibilité de &lt;a href=&quot;http://tpl.hyla-project.org/fr/documentation#var-set-var&quot; hreflang=&quot;fr&quot;&gt;définir des variables directement depuis le template&lt;/a&gt;, très utile pour les templates inclus depuis la vue&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://tpl.hyla-project.org/fr/documentation#api-methods&quot; hreflang=&quot;fr&quot;&gt;Nouvelles méthodes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Performances améliorées&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ça se passe par ici&amp;nbsp;: &lt;a href=&quot;http://tpl.hyla-project.org/&quot; hreflang=&quot;fr&quot;&gt;http://tpl.hyla-project.org/&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.digitalspirit.org/blog/index.php/post/2010/07/16/Hyla-Tpl-0.7.0-et-nouveau-site#comment-form</comments>
      <wfw:comment>http://www.digitalspirit.org/blog/index.php/post/2010/07/16/Hyla-Tpl-0.7.0-et-nouveau-site#comment-form</wfw:comment>
      <wfw:commentRss>http://www.digitalspirit.org/blog/index.php/feed/atom/comments/1138</wfw:commentRss>
      </item>
    
  <item>
    <title>Extension Openplanet pour Dotclear</title>
    <link>http://www.digitalspirit.org/blog/index.php/post/2010/02/18/Extension-Openplanet-pour-Dotclear</link>
    <guid isPermaLink="false">urn:md5:5022edd30c0765c951458dfbe05ae991</guid>
    <pubDate>Wed, 24 Feb 2010 13:05:00 +0100</pubDate>
    <dc:creator>hugo</dc:creator>
        <category>Php</category>
        <category>dotclear</category><category>extension</category><category>openplanet</category><category>php</category><category>planet</category><category>Planet-Libre</category><category>plugin</category>    
    <description>    &lt;p&gt;L'extension &lt;a href=&quot;http://disvroian.le-regent.org/index.php?category/OpenPlanet&quot; hreflang=&quot;fr&quot;&gt;Openplanet&lt;/a&gt; pour &lt;a href=&quot;http://fr.dotclear.org/&quot; hreflang=&quot;fr&quot;&gt;Dotclear&lt;/a&gt; permet de créer un planet sur votre blog, un regroupement de blogs par le biais des fils de syndication (rss, atom...).&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.digitalspirit.org/blog/public/rss.png&quot; title=&quot;Logo rss&quot;&gt;&lt;img src=&quot;http://www.digitalspirit.org/blog/public/.rss_t.jpg&quot; alt=&quot;Logo rss&quot; title=&quot;Logo rss, fév. 2010&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;J'ai eu à l'installer pour le site &lt;a href=&quot;http://planet.madeinfr.org/&quot; hreflang=&quot;fr&quot;&gt;http://planet.madeinfr.org/&lt;/a&gt; mais quelques problèmes rencontrés m'ont obligé à le modifier quelque peu.&lt;/p&gt;


&lt;p&gt;Je publie donc la version modifiée et le patch basé sur la &lt;strong&gt;version 1.2 bêta 2&lt;/strong&gt;.&lt;/p&gt;


&lt;p&gt;&lt;ins&gt;Voici la liste des corrections / ajouts :&lt;/ins&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;On ne modifie pas le status d'un billet que l'on met à jour, ainsi, si il est marqué hors ligne, il le reste...&lt;/li&gt;
&lt;li&gt;Pas d'insertion si le contenu est vide ou sans titre&lt;/li&gt;
&lt;li&gt;Autorisation dans &lt;a href=&quot;http://simplepie.org/&quot; hreflang=&quot;en&quot;&gt;SimplePie&lt;/a&gt; (la librairie de gestion de flux de syndication) des balises Object, Param et Embed afin de permettre les vidéos au format Flash (Oui, c'est mal)&lt;/li&gt;
&lt;li&gt;On ne modifie pas la categorie d'un billet dont on fait la mise à jour&lt;/li&gt;
&lt;li&gt;Résolution de problemes avec les tags importés comportant des accents&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Les sources sont en pièce jointe à ce billet.&lt;/p&gt;</description>
    
          <enclosure url="http://www.digitalspirit.org/blog/public/src/openplanet-patch-1.2-to-1.2hugo.diff"
      length="17598" type="text/plain" />
          <enclosure url="http://www.digitalspirit.org/blog/public/src/openplanet-1.2-patch-hugo.zip"
      length="190256" type="application/zip" />
    
    
          <comments>http://www.digitalspirit.org/blog/index.php/post/2010/02/18/Extension-Openplanet-pour-Dotclear#comment-form</comments>
      <wfw:comment>http://www.digitalspirit.org/blog/index.php/post/2010/02/18/Extension-Openplanet-pour-Dotclear#comment-form</wfw:comment>
      <wfw:commentRss>http://www.digitalspirit.org/blog/index.php/feed/atom/comments/988</wfw:commentRss>
      </item>
    
  <item>
    <title>Manipulez des vidéos en Php avec ffmpeg-php</title>
    <link>http://www.digitalspirit.org/blog/index.php/post/2008/10/09/Ffmpeg-et-Php</link>
    <guid isPermaLink="false">urn:md5:a571545e7309ea2695fb8e0e264c257c</guid>
    <pubDate>Fri, 10 Oct 2008 10:15:00 +0200</pubDate>
    <dc:creator>hugo</dc:creator>
        <category>Php</category>
        <category>ffmpeg</category><category>ffmpeg-php</category><category>gd</category><category>manipulation</category><category>php</category><category>tutoriel</category><category>vidéo</category>    
    <description>&lt;p&gt;
Le projet ffmpeg-php est, comme son l'indique, une interface Php au projet &lt;a href=&quot;http://ffmpeg.mplayerhq.hu&quot; hreflang=&quot;en&quot;&gt;ffmpeg&lt;/a&gt;, une application conçue pour manipuler les flux audios et vidéos et basé sur &lt;a href=&quot;http://fr.wikipedia.org/wiki/Libavcodec&quot; hreflang=&quot;fr&quot;&gt;libavcodec&lt;/a&gt;, ce qui lui permet de gérer un grand nombre de format de compression dont : MPEG-1, MPEG-2, MPEG-4 Part 2, H.264, WMV,
MJPEG, Theora, FLAC, MP2, MP3, RealAudio 1.0, RealAudio 2.0, Vorbis, Windows Media Audio...
&lt;br /&gt;
ffmpeg-php est notamment utilisé par &lt;a href=&quot;http://www.vimeo.com/&quot; hreflang=&quot;en&quot;&gt;Vimeo&lt;/a&gt; pour la création des vignettes lors du téléchargement des vidéos, c'est le gage d'une application stable et optimisée.
&lt;/p&gt;
&lt;h2&gt;L'installation&lt;/h2&gt;
&lt;p&gt;
L'installation est très simple puisque c'est une simple extension Php qu'il suffit de déclarer dans le php.ini...
&lt;/p&gt;
&lt;p&gt;
Sous &lt;a href=&quot;http://www.gentoo.org/&quot; hreflang=&quot;en&quot;&gt;Gentoo&lt;/a&gt;, l'installation peut se résumer à cette ligne de commande :
&lt;/p&gt;
&lt;pre class=&quot;shell&quot;&gt; $ sudo emerge -v ffmpeg-php&lt;/pre&gt;
&lt;p&gt;
Ensuite, il suffit d'éditer le fichier php.ini et de déclarer la nouvelle extension afin que Php la charge au démarrage :
&lt;/p&gt;
&lt;pre class=&quot;snip&quot;&gt;extension=ffmpeg.so&lt;/pre&gt;
&lt;p&gt;
Recharger la configuration de votre serveur web, et voilà, nous sommes prêt à jouer avec ffmpeg-php...
&lt;/p&gt;    &lt;h3&gt;Et maintenant, jouons !&lt;/h3&gt;
&lt;p&gt;
Comme nous l'indique la &lt;a href=&quot;http://ffmpeg-php.sourceforge.net/doc/api/index.php&quot; hreflang=&quot;en&quot;&gt;documentation de l'API&lt;/a&gt;, il existe 2 types d'objets avec ffmpeg-php :
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;movie&lt;/strong&gt; qui est retourné par ffmpeg_movie(), c'est un objet contenant des méthodes permettant d'obtenir tout un tas d'informations sur le fichier courant, c'est la première fonction que nous utiliserons&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;frame&lt;/strong&gt; renvoyé par getFrame() et getNextKeyFrame(), il s'agit là d'une image fixe extraire du flux vidéo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Commençons par obtenir des informations sur la vidéo :
&lt;/p&gt;
&lt;pre&gt;&amp;lt;?php&lt;br /&gt;&lt;br /&gt;$mov = new ffmpeg_movie('/path/to/video.avi');&lt;br /&gt;&lt;br /&gt;echo sprintf('&amp;lt;p&amp;gt;Duration : %.1f, bit rate : %d, frame count : %d, video codec : %s, audio codec : %s, audio channel : %s&amp;lt;/p&amp;gt;',&lt;br /&gt;                $mov-&amp;gt;getDuration(),&lt;br /&gt;                $mov-&amp;gt;getBitRate(),&lt;br /&gt;                $mov-&amp;gt;getFrameCount(),&lt;br /&gt;                $mov-&amp;gt;getVideoCodec(),&lt;br /&gt;                $mov-&amp;gt;getAudioCodec(),&lt;br /&gt;                $mov-&amp;gt;getAudioChannels());&lt;br /&gt;&lt;br /&gt;?&amp;gt;&lt;/pre&gt;
&lt;p&gt;
Qui devait afficher quelque chose comme ceci :
&lt;/p&gt;
&lt;pre class=&quot;html_out&quot;&gt;Duration : 18.7, bit rate : 2169054, frame count : 283, video codec : mjpeg, audio codec : pcm_u8, audio channel : 1&lt;/pre&gt;
&lt;p&gt;
Essayons maintenant de lire la frame 23 et de l'envoyer au navigateur :
&lt;/p&gt;
&lt;pre&gt;&amp;lt;?php&lt;br /&gt;&lt;br /&gt;// On charge la vidéo&lt;br /&gt;$mov = new ffmpeg_movie('/path/to/video.avi');&lt;br /&gt;&lt;br /&gt;// Récupère la frame 23&lt;br /&gt;$frame = $mov-&amp;gt;getFrame(23);&lt;br /&gt;&lt;br /&gt;// Transforme la frame récupérée au dessus en ressource GD&lt;br /&gt;$img = $frame-&amp;gt;toGDImage();&lt;br /&gt;&lt;br /&gt;// Envoie l'image au navigateur&lt;br /&gt;header(&quot;Content-type: image/jpeg&quot;);&lt;br /&gt;imagejpeg($img);&lt;br /&gt;&lt;br /&gt;?&amp;gt;&lt;/pre&gt;
&lt;p&gt;
Et voilà, déconcertant de simplicité ! non ?
&lt;/p&gt;
&lt;h3&gt;La suite&lt;/h3&gt;
&lt;p&gt;
Ci-joint, en annexe, un petit bout de code qui vous affichera les informations sur la vidéo, créera 50 miniatures et affichera enfin la vidéo convertie en animation GIF.
&lt;br /&gt;
Un aperçu du résultat :
&lt;/p&gt;
&lt;a href=&quot;http://www.digitalspirit.org/blog/public/ffmpeg-php.gif&quot; title=&quot;ffmpeg-php au boulot, oct 2008&quot;&gt;
&lt;img src=&quot;http://www.digitalspirit.org/blog/public/ffmpeg-php_min.gif&quot; alt=&quot;ffmpeg-php au boulot&quot; title=&quot;ffmpeg-php au boulot, oct 2008&quot; /&gt;
&lt;/a&gt;
&lt;p&gt;
Amusez-vous bien !
&lt;/p&gt;</description>
    
          <enclosure url="http://www.digitalspirit.org/blog/public/src/ffmpeg-php.zip"
      length="4981429" type="application/zip" />
    
    
          <comments>http://www.digitalspirit.org/blog/index.php/post/2008/10/09/Ffmpeg-et-Php#comment-form</comments>
      <wfw:comment>http://www.digitalspirit.org/blog/index.php/post/2008/10/09/Ffmpeg-et-Php#comment-form</wfw:comment>
      <wfw:commentRss>http://www.digitalspirit.org/blog/index.php/feed/atom/comments/251</wfw:commentRss>
      </item>
    
  <item>
    <title>Vie de merde dans vos scripts Php ...simplement</title>
    <link>http://www.digitalspirit.org/blog/index.php/post/2008/10/01/Vie-de-merde</link>
    <guid isPermaLink="false">urn:md5:a9a5770ad57cd3b8067ee39d15e2bcc6</guid>
    <pubDate>Wed, 01 Oct 2008 12:48:00 +0200</pubDate>
    <dc:creator>hugo</dc:creator>
        <category>Php</category>
        <category>code</category><category>Php</category><category>php</category><category>script</category><category>tutoriel</category><category>Vie de merde</category><category>viedemerde</category>    
    <description>    &lt;p&gt;
Pour afficher aléatoirement les fortunes de &lt;a href=&quot;http://www.viedemerde.fr/&quot;&gt;Vie de merde&lt;/a&gt; en Php de la manière la plus simple qu'il soit, vous pouvez faire comme ci dessous...ou pas...
&lt;/p&gt;
&lt;pre&gt;&amp;lt;?php&lt;br /&gt;&lt;br /&gt;header('Content-type: text/html; charset=UTF-8');&lt;br /&gt;&lt;br /&gt;$xml = simplexml_load_file('http://api.viedemerde.fr/1.2/view/random?key=readonly');&lt;br /&gt;&lt;br /&gt;echo &amp;lt;&amp;lt;&amp;lt;EOD&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;    &amp;lt;h1&amp;gt;{$xml-&amp;gt;vdms-&amp;gt;vdm-&amp;gt;categorie}&amp;lt;/h1&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;p&amp;gt;&lt;br /&gt;        &amp;lt;a href=&quot;http://www.viedemerde.fr/{$xml-&amp;gt;vdms-&amp;gt;vdm['id']}&quot;&amp;gt;#&amp;lt;/a&amp;gt;&lt;br /&gt;        {$xml-&amp;gt;vdms-&amp;gt;vdm-&amp;gt;texte}&lt;br /&gt;    &amp;lt;/p&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;EOD;&lt;br /&gt;&lt;br /&gt;?&amp;gt;&lt;/pre&gt;

&lt;p&gt;
Voilà, rien de bien sorcier, donc, pas d'explication, vous pouvez retourner à vos occupations, je vais en faire de même !
&lt;/p&gt;</description>
    
    
    
          <comments>http://www.digitalspirit.org/blog/index.php/post/2008/10/01/Vie-de-merde#comment-form</comments>
      <wfw:comment>http://www.digitalspirit.org/blog/index.php/post/2008/10/01/Vie-de-merde#comment-form</wfw:comment>
      <wfw:commentRss>http://www.digitalspirit.org/blog/index.php/feed/atom/comments/244</wfw:commentRss>
      </item>
    
  <item>
    <title>Plugin pour Dotclear : RandomText</title>
    <link>http://www.digitalspirit.org/blog/index.php/post/2008/06/17/Plugin-pour-Dotclear-%3A-RandomText</link>
    <guid isPermaLink="false">urn:md5:0397ce1a3e14158d568537f4a07a155b</guid>
    <pubDate>Tue, 17 Jun 2008 13:55:00 +0000</pubDate>
    <dc:creator>hugo</dc:creator>
        <category>Php</category>
        <category>aléatoire</category><category>blog</category><category>dotclear</category><category>dotclear2</category><category>php</category><category>plugin</category><category>random</category><category>randomtext</category><category>texte</category><category>widget</category>    
    <description>    &lt;p&gt;Voici un plugin très simple pour &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.dotclear.net/&quot;&gt;Dotclear&lt;/a&gt; qui va vous permettre d'ajouter des zones de texte aléatoire par le biais des widgets de présentation ou directement depuis vos thèmes.&lt;/p&gt;
&lt;p&gt;Le principe de fonctionnement est simple, une fois installé, dans la page &lt;em&gt;Widgets de présentation&lt;/em&gt;, ajoutez le plugin oû vous le souhaitez, ce dernier ira lire le fichier nommé &lt;strong&gt;random.txt&lt;/strong&gt; situé dans votre dossier public.&lt;/p&gt;
&lt;p&gt;Il est également possible d'intégrer une zone de texte directement dans vos modèles grâce à l'utilisation de la balise suivante :&lt;/p&gt;
&lt;pre&gt;{{tpl:randomtext}}&lt;/pre&gt;
&lt;p&gt;Voilà, c'est tout !&lt;/p&gt;</description>
    
          <enclosure url="http://www.digitalspirit.org/blog/public/src/plugin-randomText-0.1.zip"
      length="8430" type="application/zip" />
    
    
          <comments>http://www.digitalspirit.org/blog/index.php/post/2008/06/17/Plugin-pour-Dotclear-%3A-RandomText#comment-form</comments>
      <wfw:comment>http://www.digitalspirit.org/blog/index.php/post/2008/06/17/Plugin-pour-Dotclear-%3A-RandomText#comment-form</wfw:comment>
      <wfw:commentRss>http://www.digitalspirit.org/blog/index.php/feed/atom/comments/189</wfw:commentRss>
      </item>
    
  <item>
    <title>Écriture dans les fichiers Tomtom Ov2 et Garmin Asc</title>
    <link>http://www.digitalspirit.org/blog/index.php/post/2007/11/16/Ecriture-dans-les-fichiers-Tomtom-Ov2-et-Garmin-Asc</link>
    <guid isPermaLink="false">urn:md5:c94b3c9b9537fe75a583cf26d7b304ee</guid>
    <pubDate>Fri, 16 Nov 2007 10:25:00 +0100</pubDate>
    <dc:creator>hugo</dc:creator>
        <category>Php</category>
        <category>Asc</category><category>Développement</category><category>Garmin</category><category>Géo</category><category>Hyla</category><category>Ov2</category><category>php</category><category>Php</category><category>Poi</category><category>Tomtom</category><category>tutoriel</category>    
    <description>    &lt;p&gt;Pour faire suite au &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.digitalspirit.org/blog/index.php/post/2007/09/19/Lecture-de-fichiers-Tomtom-Ov2-et-Garmin-Asc&quot;&gt;billet précédent &lt;/a&gt;concernant la lecture de fichiers au format &lt;a hreflang=&quot;en&quot; href=&quot;http://www.tomtom.com&quot;&gt;Tomtom&lt;/a&gt; Ov2 et &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.garminfrance.com/&quot;&gt;Garmin&lt;/a&gt; Asc, voici la même librairie avec en plus le support de l'écriture.&lt;/p&gt;
&lt;p&gt;
Voici un petit exemple du fonctionnement :
&lt;/p&gt;
&lt;pre&gt;&amp;lt;?php&lt;br /&gt;/*  Ov2 and Asc reader / writer&lt;br /&gt;    hugo arobase digitalspirit dot org&lt;br /&gt;    c.rincheval, 2007&lt;br /&gt; */&lt;br /&gt;&lt;br /&gt;require 'geo.class.php';&lt;br /&gt;&lt;br /&gt;$content = array(0  =&amp;gt;  array(&lt;br /&gt;                            'lon'   =&amp;gt; -3.22,&lt;br /&gt;                            'lat'   =&amp;gt; 49.19,&lt;br /&gt;                            'label' =&amp;gt; 'poi 0'&lt;br /&gt;                        ),&lt;br /&gt;                 1  =&amp;gt;  array(&lt;br /&gt;                            'lon'   =&amp;gt; -5.45,&lt;br /&gt;                            'lat'   =&amp;gt; 52.12,&lt;br /&gt;                            'label' =&amp;gt; 'poi 1'&lt;br /&gt;                        )&lt;br /&gt;        );&lt;br /&gt;&lt;br /&gt;$file = 'test.ov2';&lt;br /&gt;&lt;br /&gt;$format = 'ov2';    // 'asc';&lt;br /&gt;&lt;br /&gt;// Writing data to file !&lt;br /&gt;geo::writeData($file, $format, $content);&lt;br /&gt;&lt;br /&gt;// Read file&lt;br /&gt;$data = geo::getData($file, $format);&lt;br /&gt;&lt;br /&gt;print_r($data);&lt;br /&gt;&lt;br /&gt;?&amp;gt;&lt;/pre&gt;
&lt;p&gt;
L'exemple ci dessus se contente d'écrire dans un fichier (test.ov2) les 2 poi du tableau et ainsi la fonctione getData lit ce fichier et l'affiche.
&lt;/p&gt;</description>
    
          <enclosure url="http://www.digitalspirit.org/blog/public/lib/geo.tar.gz"
      length="8514" type="application/x-gzip" />
    
    
          <comments>http://www.digitalspirit.org/blog/index.php/post/2007/11/16/Ecriture-dans-les-fichiers-Tomtom-Ov2-et-Garmin-Asc#comment-form</comments>
      <wfw:comment>http://www.digitalspirit.org/blog/index.php/post/2007/11/16/Ecriture-dans-les-fichiers-Tomtom-Ov2-et-Garmin-Asc#comment-form</wfw:comment>
      <wfw:commentRss>http://www.digitalspirit.org/blog/index.php/feed/atom/comments/96</wfw:commentRss>
      </item>
    
  <item>
    <title>Lecture de fichiers Tomtom Ov2 et Garmin Asc</title>
    <link>http://www.digitalspirit.org/blog/index.php/post/2007/09/19/Lecture-de-fichiers-Tomtom-Ov2-et-Garmin-Asc</link>
    <guid isPermaLink="false">urn:md5:41f3a6c173eeb11471fb61f4151a6557</guid>
    <pubDate>Wed, 19 Sep 2007 08:05:00 +0200</pubDate>
    <dc:creator>hugo</dc:creator>
        <category>Php</category>
        <category>Asc</category><category>Développement</category><category>Garmin</category><category>Géo</category><category>Hyla</category><category>Ov2</category><category>php</category><category>Php</category><category>Poi</category><category>Tomtom</category><category>tutoriel</category>    
    <description>    &lt;p&gt;Pour les besoins de &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.hyla-project.org/&quot;&gt;Hyla&lt;/a&gt; 0.8.1 et, plus particulièrement, de son plugin Géo, j'ai créé une librairie d'accès aux fichiers Ov2 de &lt;a hreflang=&quot;en&quot; href=&quot;http://www.tomtom.com/&quot;&gt;Tomtom&lt;/a&gt; et Asc de &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.garminfrance.com/&quot;&gt;Garmin&lt;/a&gt;, ces derniers contiennent des informations géographiques, et notamment, des &lt;acronym title=&quot;Point Of Interest&quot;&gt;POI&lt;/acronym&gt;.&lt;/p&gt;
&lt;p&gt;Cette librairie vous permet d'extraire les données contenues dans les fichiers sus-cités sous forme de tableaux directement exploitables dans votre application.&lt;/p&gt;
&lt;p&gt;Voici le contenu du fichier test fourni qui se contente de lire un fichier au format Ov2 et fait un &quot;dump&quot; du contenu du tableau renvoyé :&lt;/p&gt;
&lt;pre&gt;
&amp;lt;?php
/*  Ov2 and Asc reader
    hugo arobase digitalspirit dot org
    c.rincheval, 2007
 */

require 'geo.class.php';

$data = geo::getData('FON_FR.ov2', 'ov2');

print_r($data);

?&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Comme vous le voyez, l'utilisation est très simple...&lt;/p&gt;
&lt;p&gt;
En annexe, une archive contenant la classe, un fichier de test et un fichier au format ov2.
&lt;/p&gt;</description>
    
          <enclosure url="http://www.digitalspirit.org/blog/public/lib/geo.tar.gz"
      length="8514" type="application/x-gzip" />
    
    
          <comments>http://www.digitalspirit.org/blog/index.php/post/2007/09/19/Lecture-de-fichiers-Tomtom-Ov2-et-Garmin-Asc#comment-form</comments>
      <wfw:comment>http://www.digitalspirit.org/blog/index.php/post/2007/09/19/Lecture-de-fichiers-Tomtom-Ov2-et-Garmin-Asc#comment-form</wfw:comment>
      <wfw:commentRss>http://www.digitalspirit.org/blog/index.php/feed/atom/comments/91</wfw:commentRss>
      </item>
    
  <item>
    <title>Librairie Php simple pour l'Api Flickr</title>
    <link>http://www.digitalspirit.org/blog/index.php/post/2007/09/18/Librairie-Php-simple-pour-Flickr</link>
    <guid isPermaLink="false">urn:md5:48f90760688b5358f4048bf921ff6058</guid>
    <pubDate>Tue, 18 Sep 2007 08:10:00 +0200</pubDate>
    <dc:creator>hugo</dc:creator>
        <category>Php</category>
        <category>Api</category><category>Développement</category><category>Flickr</category><category>Php</category><category>php</category><category>tutoriel</category>    
    <description>    &lt;p&gt;
J'ai écrit une librairie pour accéder à l'&lt;a hreflang=&quot;fr&quot; href=&quot;http://www.flickr.com/services/api/&quot;&gt;API Flickr&lt;/a&gt; (pour ceux qui sorte du fin fond de la jungle et qui n'en ont jamais entendu parler, je vous laisse y jeter un oeil) qui vous permettra d'accéder à l'ensemble des fonctionnalités distantes qu'offre le service.&lt;br /&gt;&lt;br /&gt;Certain me diront qu'ils en existent une multitude sur le net et ils auront raison, enfin, presque, car, aucune de celles que j'ai trouvée ne me convenaient, bien trop complexe pour certaines, plutôt sales pour d'autres, j'ai donc décidé d'écrire la mienne avec comme seules contraintes, faire quelque chose de simple et qui fonctionne...proprement.&lt;/p&gt;
&lt;p&gt;L'archive contient un fichier test.php, en voici le contenu :&lt;/p&gt;
&lt;pre&gt;&amp;lt;?php&lt;br /&gt;&lt;br /&gt;/*  Minimalist class for accessing Flickr web services&lt;br /&gt;    hugo arobase digitalspirit dot org&lt;br /&gt;    c.rincheval, 2007&lt;br /&gt; */&lt;br /&gt;&lt;br /&gt;require 'flickr.class.php';&lt;br /&gt;&lt;br /&gt;define('FLICKR_KEY',    'YOUR_FLICKR_KEY');&lt;br /&gt;define('FLICKR_SECRET', 'YOUR_FLICKR_SECRET');&lt;br /&gt;&lt;br /&gt;$flk = new flickr(FLICKR_KEY, FLICKR_SECRET);&lt;br /&gt;&lt;br /&gt;$args = array();&lt;br /&gt;$rsp = $flk-&amp;gt;request('flickr.photos.getRecent', $args);&lt;br /&gt;&lt;br /&gt;if ($rsp['stat'] == 'ok') {&lt;br /&gt;    $url_img = 'http://farm%s.static.flickr.com/%s/%s_%s%s.jpg';&lt;br /&gt;    foreach ($rsp['photos']['photo'] as $photo) {&lt;br /&gt;        echo '&amp;lt;img src=&quot;http://www.digitalspirit.org/blog/index.php/post/2007/09/18/'.sprintf($url_img, $photo['farm'], $photo['server'], $photo['id'], $photo['secret'], '_s').'&quot; alt=&quot;&quot; /&amp;gt;';&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;?&amp;gt;&lt;/pre&gt;
&lt;p&gt;Cet exemple va chercher sur le site de Flickr les photos les plus récentes et les affichent directement sur la page.&lt;/p&gt;
&lt;p&gt;Comme vous pouvez le voir, c'est relativement simple et vous pouvez, comme je l'ai fait, étendre ces fonctionnalités en dérivant de cette classe.&lt;/p&gt;
&lt;p&gt;Vous trouverez ci-joint l'archive contenant les sources de la classe, le fichier d'exemple et le fichier de license GNU/GPL.&lt;/p&gt;</description>
    
          <enclosure url="http://www.digitalspirit.org/blog/public/lib/flickr.tar.gz"
      length="8241" type="application/x-gzip" />
    
    
          <comments>http://www.digitalspirit.org/blog/index.php/post/2007/09/18/Librairie-Php-simple-pour-Flickr#comment-form</comments>
      <wfw:comment>http://www.digitalspirit.org/blog/index.php/post/2007/09/18/Librairie-Php-simple-pour-Flickr#comment-form</wfw:comment>
      <wfw:commentRss>http://www.digitalspirit.org/blog/index.php/feed/atom/comments/90</wfw:commentRss>
      </item>
    
</channel>
</rss>
