SnippetVamp

Parce que yen a marre de chercher ses bouts de code partout...



TODO 1 ajax 3 astuce 64 auto_ 2 bootstrap 14 conversion 2 crossbrowser 3 css 46 debug 10 dothtaccess 1 effets 1 erreurs 1 evenements 2 fallback 1 fichiers 27 filter 1 fonctions 72 form 1 graphisme 11 html 39 javascript 38 jquery 26 lib 2 mail 1 markdown 2 mobile 2 parser 13 php 88 pluXML 4 python 10 responsive 7 securite 16 social 1 texte 16 vanilla 4

.

Derniers snippets

Bienvenue sur l'espace SnippetVamp de Bronco.
SnippetVamp est une application libre et open-source destinée à conserver, créer, modifier, retrouver, gérer, partager simplement et rapidement des snippets.
Vous pouvez la télécharger sur Github (github.com/broncowdd/SnippetVamp), l'installer sur votre serveur (php 5.2 sans base de données) et en modifier les thèmes et le code comme bon vous semble (en laissant quelque part une référence à la source ;) )

Zipper des fichiers

/* creates a compressed zip file */  
function create_zip($files = array(),$destination = '',$overwrite = false) {  
    //if the zip file already exists and overwrite is false, return false  
    if(file_exists($destination) && !$overwrite) { return false; }  
    //vars  
    $valid_files = array();  
    //if files were passed in...  
    if(is_array($files)) {  
        //cycle through each file  
        foreach($files as $file) {  
            //make sure the file exists  
            if(file_exists($file)) {  
                $valid_files[] = $file;  
            }  
        }  
    }  
    //if we have good files...  
    if(count($valid_files)) {  
        //create the archive  
        $zip = new ZipArchive();  
        if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {  
            return false;  
        }  
        //add the files  
        foreach($valid_files as $file) {  
            $zip->addFile($file,$file);  
        }  
        //debug  
        //echo 'The zip archive contains ',$zip->numFiles,' files with a status of ',$zip->status;  
          
        //close the zip -- done!  
        $zip->close();  
          
        //check to make sure the file exists  
        return file_exists($destination);  
    }  
    else  
    {  
        return false;  
    }  
}  
/***** Example Usage ***/  
$files=array('file1.jpg', 'file2.jpg', 'file3.gif');  
create_zip($files, 'myzipfile.zip', true);  

php fonctions fichiers

http://webdeveloperplus.com/php/21-really-useful-handy-php-code-snippets/

<iframe width="100%" height="974" src="http://snippetvamp.warriordudimanche.net/snippetvamp.php?embed=516d1b32c6c70" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 16/04/2013

Tronquer une chaine entre les mots

// Original PHP code by Chirp Internet: www.chirp.com.au   
// Please acknowledge use of this code by including this header.   
function myTruncate($string, $limit, $break=".", $pad="...") {   
    // return with no change if string is shorter than $limit    
    if(strlen($string) <= $limit)   
        return $string;   
      
    // is $break present between $limit and the end of the string?    
    if(false !== ($breakpoint = strpos($string, $break, $limit))) {  
        if($breakpoint < strlen($string) - 1) {   
            $string = substr($string, 0, $breakpoint) . $pad;   
        }   
    }  
    return $string;   
}  
/***** Example ****/  
$short_string=myTruncate($long_string, 100, ' ');

texte php fonctions

http://webdeveloperplus.com/php/21-really-useful-handy-php-code-snippets/

<iframe width="100%" height="488" src="http://snippetvamp.warriordudimanche.net/snippetvamp.php?embed=516d124c9247e" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 16/04/2013

Ajouter un gravatar

/****************** 
*@email - Email address to show gravatar for 
*@size - size of gravatar 
*@default - URL of default gravatar to use 
*@rating - rating of Gravatar(G, PG, R, X) 
*/  
function show_gravatar($email, $size, $default, $rating)  
{  
    echo '<img src="http://www.gravatar.com/avatar.php?gravatar_id='.md5($email).  
        '&default='.$default.'&size='.$size.'&rating='.$rating.'" width="'.$size.'px"  
        height="'.$size.'px" />';  
}  

php fonctions graphisme

http://webdeveloperplus.com/php/21-really-useful-handy-php-code-snippets/

<iframe width="100%" height="398" src="http://snippetvamp.warriordudimanche.net/snippetvamp.php?embed=516d11f151a44" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 16/04/2013

Créer un nuage de tags

function getCloud( $data = array(), $minFontSize = 12, $maxFontSize = 30 )  
{  
    $minimumCount = min($data);  
    $maximumCount = max($data);  
    $spread       = $maximumCount - $minimumCount;  
    $cloudHTML    = '';  
    $cloudTags    = array();  
  
    $spread == 0 && $spread = 1;  
  
    foreach( $data as $tag => $count )  
    {  
        $size = $minFontSize + ( $count - $minimumCount )   
            * ( $maxFontSize - $minFontSize ) / $spread;  
        $cloudTags[] = '<a style="font-size: ' . floor( $size ) . 'px'   
        . '" class="tag_cloud" href="#" title="'' . $tag  .  
        '' returned a count of ' . $count . '">'   
        . htmlspecialchars( stripslashes( $tag ) ) . '</a>';  
    }  
      
    return join( "n", $cloudTags ) . "n";  
}  
/************************** 
****   Sample usage    ***/  
$arr = Array('Actionscript' => 35, 'Adobe' => 22, 'Array' => 44, 'Background' => 43,   
    'Blur' => 18, 'Canvas' => 33, 'Class' => 15, 'Color Palette' => 11, 'Crop' => 42,   
    'Delimiter' => 13, 'Depth' => 34, 'Design' => 8, 'Encode' => 12, 'Encryption' => 30,   
    'Extract' => 28, 'Filters' => 42);  
echo getCloud($arr, 12, 36);  

php fonctions

http://webdeveloperplus.com/php/21-really-useful-handy-php-code-snippets/

<iframe width="100%" height="704" src="http://snippetvamp.warriordudimanche.net/snippetvamp.php?embed=516d10a7b2d4b" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 16/04/2013

Forcer le téléchargement d'un fichier

/******************** 
*@file - path to file 
*/  
function force_download($file)  
{  
    if ((isset($file))&&(file_exists($file))) {  
       header("Content-length: ".filesize($file));  
       header('Content-Type: application/octet-stream');  
       header('Content-Disposition: attachment; filename="' . $file . '"');  
       readfile("$file");  
    } else {  
       echo "No file selected";  
    }  
}  

php fonctions fichiers

http://webdeveloperplus.com/php/21-really-useful-handy-php-code-snippets/

<iframe width="100%" height="434" src="http://snippetvamp.warriordudimanche.net/snippetvamp.php?embed=516d106143185" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 16/04/2013

Récupérer l'IP réelle du user

function getRealIpAddr()  
{  
    if (!emptyempty($_SERVER['HTTP_CLIENT_IP']))  
    {  
        $ip=$_SERVER['HTTP_CLIENT_IP'];  
    }  
    elseif (!emptyempty($_SERVER['HTTP_X_FORWARDED_FOR']))  
    //to check ip is pass from proxy  
    {  
        $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];  
    }  
    else  
    {  
        $ip=$_SERVER['REMOTE_ADDR'];  
    }  
    return $ip;  
}  

php fonctions securite

http://webdeveloperplus.com/php/21-really-useful-handy-php-code-snippets/

<iframe width="100%" height="488" src="http://snippetvamp.warriordudimanche.net/snippetvamp.php?embed=516d0ff65ef67" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 16/04/2013

Parser du Json

$json_string='{"id":1,"name":"foo","email":"foo@foobar.com","interest":["wordpress","php"]} ';  
$obj=json_decode($json_string);  
echo $obj->name; //prints foo  
echo $obj->interest[1]; //prints php  

php fonctions parser

http://webdeveloperplus.com/php/21-really-useful-handy-php-code-snippets/

<iframe width="100%" height="254" src="http://snippetvamp.warriordudimanche.net/snippetvamp.php?embed=516d0f76273c3" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 16/04/2013

Parser du XML

//xml string  
$xml_string="<?xml version='1.0'?> 
<users> 
   <user id='398'> 
      <name>Foo</name> 
      <email>foo@bar.com</name> 
   </user> 
   <user id='867'> 
      <name>Foobar</name> 
      <email>foobar@foo.com</name> 
   </user> 
</users>";  
  
//load the xml string using simplexml  
$xml = simplexml_load_string($xml_string);  
  
//loop through the each node of user  
foreach ($xml->user as $user)  
{  
   //access attribute  
   echo $user['id'], '  ';  
   //subnodes are accessed by -> operator  
   echo $user->name, '  ';  
   echo $user->email, '<br />';  
}  

parser php fonctions

http://webdeveloperplus.com/php/21-really-useful-handy-php-code-snippets/

<iframe width="100%" height="632" src="http://snippetvamp.warriordudimanche.net/snippetvamp.php?embed=516d0f0e1e754" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 16/04/2013

Encoder les adresses mail

function encode_email($email='info@domain.com', $linkText='Contact Us', $attrs ='class="emailencoder"' )  
{  
    // remplazar aroba y puntos  
    $email = str_replace('@', '@', $email);  
    $email = str_replace('.', '.', $email);  
    $email = str_split($email, 5);  
  
    $linkText = str_replace('@', '@', $linkText);  
    $linkText = str_replace('.', '.', $linkText);  
    $linkText = str_split($linkText, 5);  
      
    $part1 = '<a href="ma';  
    $part2 = 'ilto:';  
    $part3 = '" '. $attrs .' >';  
    $part4 = '</a>';  
  
    $encoded = '<script type="text/javascript">';  
    $encoded .= "document.write('$part1');";  
    $encoded .= "document.write('$part2');";  
    foreach($email as $e)  
    {  
            $encoded .= "document.write('$e');";  
    }  
    $encoded .= "document.write('$part3');";  
    foreach($linkText as $l)  
    {  
            $encoded .= "document.write('$l');";  
    }  
    $encoded .= "document.write('$part4');";  
    $encoded .= '</script>';  
  
    return $encoded;  
}  

fonctions php

http://webdeveloperplus.com/php/21-really-useful-handy-php-code-snippets/

<iframe width="100%" height="776" src="http://snippetvamp.warriordudimanche.net/snippetvamp.php?embed=516d08057a11c" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 26/08/2013

générer une chaine aléatoire lisible par un humain

/************** 
*@length - length of random string (must be a multiple of 2) 
**************/  
function readable_random_string($length = 6){  
    $conso=array("b","c","d","f","g","h","j","k","l",  
    "m","n","p","r","s","t","v","w","x","y","z");  
    $vocal=array("a","e","i","o","u");  
    $password="";  
    srand ((double)microtime()*1000000);  
    $max = $length/2;  
    for($i=1; $i<=$max; $i++)  
    {  
    $password.=$conso[rand(0,19)];  
    $password.=$vocal[rand(0,4)];  
    }  
    return $password;  
}  

php fonctions

http://webdeveloperplus.com/php/21-really-useful-handy-php-code-snippets/

<iframe width="100%" height="488" src="http://snippetvamp.warriordudimanche.net/snippetvamp.php?embed=516d07b5ee954" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 16/04/2013

Lire/écrire dans un fichier en compressant/décompressant en une instruction

#En PHP, il y a plusieurs moyens pour lire et écrire dans un fichier (fopen). De même pour en compresser son contenu (gzcompress).
#Seulement, vous pouvez vous simplifier la vie en utilisant UNE seule instruction pour stocker du contenu sous forme compressée :

file_put_contents("compress.zlib://$filename", $content);

#Ensuite, pour lire ce fichier compressé, UNE instruction également :

$content = file_get_contents("compress.zlib://$filename");

#"compress.zlib://" est en fait ce qu'on appelle un wrapper ; il en existe plusieurs autres en PHP. Celui-ci permet de dire que le fichier sera compressé grâce à la bibliothèque Zlib.

#ATTENTION : avec file_get_contents(), si la lecture échoue, il renvoie le booléen "false" ! Or, il est indispensable de bien tester le retour à l'aide de l'égalité de #type (=== ou !==), car si le fichier contient, par exemple, 0 et que vous testez avec l'égalité simple (== ou !=), alors il considérera que c'est faux, donc que la #lecture a échoué ! C'est normal : 0 == false (même valeur) mais 0 !== false (pas le même type) !

#Donc il faut tester comme suit : if ($content !== false) { //OK, do something... }

php fichiers

http://links.kevinvuilleumier.net/?0gZWGQ

<iframe width="100%" height="434" src="http://snippetvamp.warriordudimanche.net/snippetvamp.php?embed=516d01d23797c" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 16/04/2013

Fonction d'arrêt et de débuggage: AFF()

function aff($a,$stop=true){echo 'Arret a la ligne '.__LINE__.' du fichier '.__FILE__.'<pre>';var_dump($a);echo '</pre>';if ($stop){exit();}}

php fonctions debug

<iframe width="100%" height="218" src="http://snippetvamp.warriordudimanche.net/snippetvamp.php?embed=5167b5d528215" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 21/05/2013

SNIPPETVAMP : Done & todo

A faire
____________________________________________________________________________

- effectuer un stress test avec bcp de snippets
- une relecture et une optimisation du code (rationaliser et améliorer ce qui peut sans doute l'être),
 faire une doc wiki (user + dev)

bugs
____________________________________________________________________________
flux rss des recherches
le textarea fait toujours le truc bizarre

En cours:
____________________________________________________________________________
- optimiser maquette (go & fuck IE)


Fait:
____________________________________________________________________________
- implémentation d'un cache
- accueil avec les derniers snippets (nb configurable)
- bouton embed qui donne le code d'intégration
- config externalisée dans un fichier config créé au premier lancement pour la rendre éditable et éviter la perte de sa config en cas de mise à jour
- formulaire de config autogénéré (pour s'adapter automatiquement aux futures variables de configuration
- flux rss filtré (tag/recherche/derniers snippets) qui liste NB snippets publics (avec nb configurable)
- accès à un snippet spécifique en txt uniquement
- coloration des boutons tags en fonction du tag via css (utile pour retrouver facilement un bouton/theme)
- config:statut par défaut
- config:message de description de l'appli
- config:highlight_theme (seul défaut est "adapté")
- internationalisation (fr/en) via un array $msg['langue'] et une fonction msg('txt par défaut');
- changement statut public privé en un clic
- statut public/privé
- coloration syntaxique (si fichier hightlight.js est présent)
- recherche de mot dans les snippets
- recherche par tags (un clic)
- kiss mode ON ! light: -22ko (+jquip env 30ko au lieu de jquery et css:15ko lors du premier chargement (encore optimisable en supprimant les préfixages devenus inutiles pour certains. 
- responsive (2 dispositions et largeur qui s'adapte)
- pb d'encodage (over) (Hope so...)
- édition de snippet
- sécurisation admin avec session (boutons chargés ou pas/fonctions de retour filtrantes/formulaires chargés ou pas)
- formulaire initial de création de compte admin (pseudo et passe)
- nuage de tags classés par ordre alphabétique ou nb de snippets (configurable)

TODO

<iframe width="100%" height="956" src="http://snippetvamp.warriordudimanche.net/snippetvamp.php?embed=515f2f017b07a" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 20/05/2013

Fonction addevent()

/*
addEvent — cette fonction écrite par John Resig , à l’origine de jQuery , a gagné le concours addEvent() recoding contest . Elle permet tout simplement d’attacher une fonction à un événement (onload, onclick, onmouseover, etc) :*/

function addEvent( obj, type, fn ) {
    if ( obj.attachEvent ) {
        obj['e'+type+fn] = fn;
        obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
        obj.attachEvent( 'on'+type, obj[type+fn] );
    } else
        obj.addEventListener( type, fn, false );
}

//En prime, voici la fonction inverse, au cas où :

function removeEvent( obj, type, fn ) {
    if ( obj.detachEvent ) {
        obj.detachEvent( 'on'+type, obj[type+fn] );
        obj[type+fn] = null;
    } else
        obj.removeEventListener( type, fn, false );
}

/*Quelques exemples d’utilisation :

addEvent( document.getElementById('foo'), 'click', doSomething );
addEvent( obj, 'mouseover', function(){ alert('hello!'); } );
addEvent( window, 'load', maFonction );

Le dernier exemple est idéal pour lancer une fonction au chargement de la page sans intrusion dans le code HTML !*/

javascript

<iframe width="100%" height="704" src="http://snippetvamp.warriordudimanche.net/snippetvamp.php?embed=515c1f93cabe7" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 03/04/2013

Tester l'appui sur une touche

$(document).keypress(function(e){
        switch(e.which){
        // ENTER
        case 13:
        alert('enter pressed');
        break;

        (...)

        }
    });
});

jquery

<iframe width="100%" height="398" src="http://snippetvamp.warriordudimanche.net/snippetvamp.php?embed=515c1efae2962" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 03/04/2013

1234567891011121314

Flux RSS de cette page


SnippetVamp 1.83 par Bronco - Page générée en 0.022 s