<?xml version="1.0" encoding="UTF-8" ?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <title>Latest snippets</title>
  <link rel="alternate" href="http://snippets.prendreuncafe.com/"></link>
  <id>http://snippets.prendreuncafe.com/</id>
  <updated>2010-08-01T14:46:03Z</updated>
  <author>
    <name>Symfony</name>
    <author_email>noreply@symfony-project.com</author_email>
  </author>
<entry>
  <title>retour chariot</title>
  <link href="http://snippets.prendreuncafe.com/snippet/104"></link>
  <updated>2010-08-01T14:46:03Z</updated>
  <id>104</id>
  <summary type="html">[code]
$ echo &quot;one,two,three&quot; | sed &quot;s/,/\\n\\r/g&quot; 
$ echo &quot;one,two,three&quot; | sed &quot;s/,/\\n/g&quot;
[/code]

dans les deux cas : 
[code xml]
one
two
three
[/code]
par contre je comptait le mettre en tant que commentaire sur ton code, je n'y suis pas arrivé</summary>
</entry>
<entry>
  <title>Who committed in this SVN repository?</title>
  <link href="http://snippets.prendreuncafe.com/snippet/103"></link>
  <updated>2010-02-23T12:06:01Z</updated>
  <id>103</id>
  <summary type="html">[code]
$ svn log -q | cut -d '|' -f 2 - | sort | uniq
[/code]

Via [Arnaud](http://twitter.com/arnaudlimbourg/statuses/9520985693).</summary>
</entry>
<entry>
  <title>replace url by links in a text</title>
  <link href="http://snippets.prendreuncafe.com/snippet/102"></link>
  <updated>2009-11-18T14:18:45Z</updated>
  <id>102</id>
  <summary type="html">[code]
  static function urlMe($text){
    $pattern = &quot;@(http://|https://){1}((www\.?)[a-zA-Z0-9\-\.]+\.[a-z]{2,6})/?([^\s]*)@&quot;;
    preg_match_all($pattern,' '.$text.' ',$matches);
    foreach($matches[2] as $offset =&gt; $link){
      $text = str_replace($matches[0][$offset],'&lt;a href=&quot;'.$matches[0][$offset].'&quot; title=&quot;'.$matches[0][$offset].'&quot;&gt;'.$link.'&lt;/a&gt;',$text);
    }
    return($text);
  }
[/code]</summary>
</entry>
<entry>
  <title>Utiliser un retour charriot dans un remplacement sed</title>
  <link href="http://snippets.prendreuncafe.com/snippet/101"></link>
  <updated>2009-06-04T16:09:15Z</updated>
  <id>101</id>
  <summary type="html">Quand on veut utiliser un retour charriot (\n) dans un remplacement avec sed, on commence généralement par essayer ce genre de truc :

[code]
$ echo &quot;one,two,three&quot; | sed &quot;s/,/\n/g&quot;
[/code]

Mais ça ne fonctionne pas ; il faut donc émuler le retour charriot, ce qui est faisable de cette façon :

[code]
$ echo &quot;one,two,three&quot; | sed &quot;s/,/\\`echo -e '\n\r'`/g&quot;
[/code]</summary>
</entry>
<entry>
  <title>Bannir les cronmails</title>
  <link href="http://snippets.prendreuncafe.com/snippet/100"></link>
  <updated>2009-06-01T11:25:27Z</updated>
  <id>100</id>
  <summary type="html">Si vous utilisez crontab, vous recevez sans doute souvent des emails à l'adresse du propriétaire du compte avec le détail des sorties standards et d'erreurs suite à l'execution des commandes programmées.

Pour éviter ces emails, on peut systématiquement masquer ces sorties lors de l'appel à la ligne, par exemple dans un crontab :

[code bash]
*/10 * * * * ./myprogram 1&gt; /dev/null 2&gt; /dev/null
[/code]
</summary>
</entry>
<entry>
  <title>Récupérer le nombre d'abonnés feedburner</title>
  <link href="http://snippets.prendreuncafe.com/snippet/99"></link>
  <updated>2009-05-14T10:45:02Z</updated>
  <id>99</id>
  <summary type="html">Pour récupérer le nombre d'abonnés à un flux Feedburner, par exemple celui du flux de prendreuncafe.com :

[code php]
&lt;?php
$feedName = 'prendreuncafe'; // identifiant feedburner
$xml = @simplexml_load_file(sprintf('https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=%s&amp;dates=%s,%s',
  $feedName,
  date('Y-m-d', strtotime('-2 day')),
  date('Y-m-d', strtotime('-1 day'))));
if (!$xml) throw new RuntimeException('Feed unavailable');
var_dump((int) $xml-&gt;feed-&gt;entry[0]['circulation']);
[/code]

Source d'inspiration : [Oncle Tom](http://case.oncle-tom.net/2009/05/14/affichage-personnalise-abonnes-feedburner/)</summary>
</entry>
<entry>
  <title>pngFix IE 5.5 =&gt; 6</title>
  <link href="http://snippets.prendreuncafe.com/snippet/98"></link>
  <updated>2009-03-06T21:49:22Z</updated>
  <id>98</id>
  <summary type="html">[code]
var arVersion = navigator.appVersion.split(&quot;MSIE&quot;);
var version = parseFloat(arVersion[1]);

function fixPNG(myImage)
{
    if ((version &gt;= 5.5) &amp;&amp; (version &lt; 7) &amp;&amp; (document.body.filters)) 
    {
        var node = document.createElement('span');
        node.id = myImage.id;
        node.className = myImage.className;
        node.title = myImage.title;
        node.style.cssText = myImage.style.cssText;
        node.style.setAttribute('filter', &quot;progid:DXImageTransform.Microsoft.AlphaImageLoader&quot;
                                        + &quot;(src=\'&quot; + myImage.src + &quot;\', sizingMethod='scale')&quot;);
        node.style.fontSize = '0';
        node.style.width = myImage.width.toString() + 'px';
        node.style.height = myImage.height.toString() + 'px';
        node.style.display = 'inline-block';
        return node;
    }
    else
    {
        return myImage.cloneNode(false);
    }
}
[/code]

src : colorpicker.com</summary>
</entry>
<entry>
  <title>Générer automatiquement des liens internationnalisés avec symfony 1.2</title>
  <link href="http://snippets.prendreuncafe.com/snippet/97"></link>
  <updated>2009-02-06T17:00:57Z</updated>
  <id>97</id>
  <summary type="html">Par exemple, dans le layout :

[code php]
&lt;ul&gt;
  &lt;li&gt;&lt;?php echo link_to(__('French'),  sprintf('@%s?sf_culture=fr', $r = $sf_context-&gt;getRouting()-&gt;getCurrentRouteName())) ?&gt;&lt;/li&gt;
  &lt;li&gt;&lt;?php echo link_to(__('English'), sprintf('@%s?sf_culture=en', $r)) ?&gt;&lt;/li&gt;
&lt;/ul&gt;
[/code]</summary>
</entry>
<entry>
  <title>SVN based CSS/JS Caching trick</title>
  <link href="http://snippets.prendreuncafe.com/snippet/96"></link>
  <updated>2008-10-21T20:41:09Z</updated>
  <id>96</id>
  <summary type="html">You want to be sure client (browser or real one) uses the very last css/js file everytime you update svn repository.

Here's my proposition :

__Make a sfSVN.class.php__

[code php]
&lt;?php
/**
 *  sfSVN : sf+SVN based CSS/JS caching trick
 *
 * @author [MA]Pascal &lt;pborreli@sqli.com&gt;
 */
class sfSVN
{
    /**
     * returns the last revision number
     *
     * @return integer
     */
    public static function getHeadRevision ()
    {
        if (! file_exists($file = sfConfig::get('sf_root_dir') . DIRECTORY_SEPARATOR . '.svn/entries')) {
            return date('Ymd');
        }
        $svn = file($file);
        return isset($svn[3]) ? (int) $svn[3] : date('Ymd');
    }
}
[/code]

__Tweak your view.yml__

[code yml]
    stylesheets:
    - style.css?&lt;?php echo sfSVN::getHeadRevision().PHP_EOL ?&gt;
  javascripts:
    - functions.js?&lt;?php echo sfSVN::getHeadRevision().PHP_EOL ?&gt;
    - set.js?&lt;?php echo sfSVN::getHeadRevision().PHP_EOL ?&gt;
[/code]

__Clear the cache__
[code]
$ symfony cc
[/code]

__The result__

[code html]
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/functions.js?158&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/set.js?158&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; media=&quot;screen&quot; href=&quot;/css/style.css?158&quot; /&gt;
[/code]

__Notes__

This little script go read inside SVN file what's the last SVN revision number of your project __everytime you clear the cache__ so it doesn't add much i/o.

Help me to get this script better if you have any idea :)

Cheers,

[MA]Pascal</summary>
</entry>
<entry>
  <title>Autocomplétion au sein d'eclipse</title>
  <link href="http://snippets.prendreuncafe.com/snippet/95"></link>
  <updated>2008-07-22T15:09:37Z</updated>
  <id>95</id>
  <summary type="html">Copier-coller le code suivant dans un fichier xml :

[code]
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&lt;templates&gt;&lt;template autoinsert=&quot;true&quot; context=&quot;php&quot; deleted=&quot;false&quot; description=&quot;create a Symfony Action&quot; enabled=&quot;true&quot; name=&quot;action&quot;&gt;public function execute${Action} {
  ${body}
}&lt;/template&gt;&lt;template autoinsert=&quot;true&quot; context=&quot;php&quot; deleted=&quot;false&quot; description=&quot;Create a class controller&quot; enabled=&quot;true&quot; name=&quot;controller&quot;&gt;class ${ControllerName}Actions extends sfActions  {

    public  function execute${action}()

    {
      ${body}
    }

}
&lt;/template&gt;&lt;template autoinsert=&quot;true&quot; context=&quot;php&quot; deleted=&quot;false&quot; description=&quot;criteria doSelect&quot; enabled=&quot;true&quot; name=&quot;doselect&quot;&gt;$$c = new Criteria;
$$${objects} = ${propelObject}Peer::doSelect($$c);&lt;/template&gt;&lt;/templates&gt;
[/code]

## Installation au sein d'eclipse 

* Dans eclipse allez dans Window &gt; Preferences
* Choisir PHP dans la liste des préférences
* Choisir Template et cliquer sur Import
* Selectionner le fichier xml puis accepter

__Note:__ _Le mieux serait de s'inspirer des templates de texmate afin de se monter un système de templating complet pour Eclipse. Ajout également de commentaires compatibles phpdocumentor_
</summary>
</entry>
</feed>
