Derniers snippets
retour chariot
$ echo "one,two,three" | sed "s/,/\\n\\r/g"
$ echo "one,two,three" | sed "s/,/\\n/g"
dans les deux cas :
one two three
par contre je comptait le mettre en tant que commentaire sur ton code, je n'y suis pas arrivé
Who committed in this SVN repository?
$ svn log -q | cut -d '|' -f 2 - | sort | uniq
Via Arnaud.
replace url by links in a text
static function urlMe($text){ $pattern = "@(http://|https://){1}((www\.?)[a-zA-Z0-9\-\.]+\.[a-z]{2,6})/?([^\s]*)@"; preg_match_all($pattern,' '.$text.' ',$matches); foreach($matches[2] as $offset => $link){ $text = str_replace($matches[0][$offset],'<a href="'.$matches[0][$offset].'" title="'.$matches[0][$offset].'">'.$link.'</a>',$text); } return($text); }
Utiliser un retour charriot dans un remplacement sed
Quand on veut utiliser un retour charriot (\n) dans un remplacement avec sed, on commence généralement par essayer ce genre de truc :
$ echo "one,two,three" | sed "s/,/\n/g"
Mais ça ne fonctionne pas ; il faut donc émuler le retour charriot, ce qui est faisable de cette façon :
$ echo "one,two,three" | sed "s/,/\\`echo -e '\n\r'`/g"
Bannir les cronmails
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 :
*/10 * * * * ./myprogram 1> /dev/null 2> /dev/null
Récupérer le nombre d'abonnés feedburner
Pour récupérer le nombre d'abonnés à un flux Feedburner, par exemple celui du flux de prendreuncafe.com :
<?php $feedName = 'prendreuncafe'; // identifiant feedburner $xml = @simplexml_load_file(sprintf('https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=%s&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->feed->entry[0]['circulation']);
Source d'inspiration : Oncle Tom
pngFix IE 5.5 => 6
var arVersion = navigator.appVersion.split("MSIE"); var version = parseFloat(arVersion[1]); function fixPNG(myImage) { if ((version >= 5.5) && (version < 7) && (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', "progid:DXImageTransform.Microsoft.AlphaImageLoader" + "(src=\'" + myImage.src + "\', sizingMethod='scale')"); 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); } }
src : colorpicker.com
Générer automatiquement des liens internationnalisés avec symfony 1.2
Par exemple, dans le layout :
<ul> <li><?php echo link_to(__('French'), sprintf('@%s?sf_culture=fr', $r = $sf_context->getRouting()->getCurrentRouteName())) ?></li> <li><?php echo link_to(__('English'), sprintf('@%s?sf_culture=en', $r)) ?></li> </ul>
SVN based CSS/JS Caching trick
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
<?php /** * sfSVN : sf+SVN based CSS/JS caching trick * * @author [MA]Pascal <pborreli@sqli.com> */ 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'); } }
Tweak your view.yml
stylesheets:
- style.css?<?php echo sfSVN::getHeadRevision().PHP_EOL ?>
javascripts:
- functions.js?<?php echo sfSVN::getHeadRevision().PHP_EOL ?>
- set.js?<?php echo sfSVN::getHeadRevision().PHP_EOL ?>
Clear the cache
$ symfony cc
The result
<script type="text/javascript" src="/js/functions.js?158"></script> <script type="text/javascript" src="/js/set.js?158"></script> <link rel="stylesheet" type="text/css" media="screen" href="/css/style.css?158" />
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
Autocomplétion au sein d'eclipse
Copier-coller le code suivant dans un fichier xml :
<?xml version="1.0" encoding="UTF-8" standalone="no"?><templates><template autoinsert="true" context="php" deleted="false" description="create a Symfony Action" enabled="true" name="action">public function execute${Action} { ${body} }</template><template autoinsert="true" context="php" deleted="false" description="Create a class controller" enabled="true" name="controller">class ${ControllerName}Actions extends sfActions { public function execute${action}() { ${body} } } </template><template autoinsert="true" context="php" deleted="false" description="criteria doSelect" enabled="true" name="doselect">$$c = new Criteria; $$${objects} = ${propelObject}Peer::doSelect($$c);</template></templates>
Installation au sein d'eclipse
- Dans eclipse allez dans Window > 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


