614 shaares
30 results
tagged
php
Ça y est !!!! :D
Enfin ! Au final, j'ai eu bien plus de difficultés que prévu, d'où mes cris de joies :'D #seulLesCodeursPeuventComprendre
Zerobin ? Facile à utiliser ? FOOL!! Fin moi aussi je le pensais … Jusqu'à ce que ma route croise quelques néophytes du web :/ … J'ai encore mal !
Il fallait encore plus simple ! Un no-brainer, clique clique, pesé c'est envoyé !
(En gardant toujours le tout highly paramétrable tant qu'on a une option par défaut c'est ce qui compte ET libre (open source, toussa, etc))
Boum: PickyPaste, based on Zerobin's core, that's for PickyPeople who wants robustness (yeay Zerobin) AND super-easy-to-use. DONE!
Le but de l'appli est surtout de pouvoir l'utiliser via le snippet: Une page intéressante que j'aimerais partager ? Alors faut quelque chose d'aussi simple que le traditionnel bouton Partager, sinon les gens ne verront aucune raison à ce qu'ils se cassent le cul à devoir faire des trucs en plus compliqués.
Alors on leur donne juste un favoris à cliquer dessus, hop, ça ouvre un nouvel onglet avec le message préremplis avec l'adresse de la page où on se trouvait.
On rentre l'email du destinataire (pourra y avoir une liste par défaut plus tard, genre se faire une liste de contact et tout, mais tout en restant KISS) (et ça sera aussi facilement modulable, donc le choix de l'email n'est pas forcé) ainsi que le sien si on veut pouvoir être répondu,
Les autres options ont toutes une valeur par défaut (avec une ptite explication quand au fonctionnement du "BurnAfterReading" activé par défaut), les options classiques de Zerobin sont toutes là, mais on peut également préciser un serveur Zerobin alternatif ou un serveur mail alternatif (car plus tard, il est prévu de pouvoir avoir le client sur son pc, en .html pour éviter contre une prise de domaine).
Le mail envoyé comporte une petite explication sommaire du pourquoi et du comment et utilise l'entête Reply-To si l'adresse email fournie est valide.
Le code source de l'app est disponible en bas de la page :)
Next to come: The English version (and a lot of other stuff)
PS: Bon, ne faites pas trop attention au design hein :p c'pas mon fort :3
Sujet lié: http://www.olissea.com/bbs/?tid=962
Enfin ! Au final, j'ai eu bien plus de difficultés que prévu, d'où mes cris de joies :'D #seulLesCodeursPeuventComprendre
Zerobin ? Facile à utiliser ? FOOL!! Fin moi aussi je le pensais … Jusqu'à ce que ma route croise quelques néophytes du web :/ … J'ai encore mal !
Il fallait encore plus simple ! Un no-brainer, clique clique, pesé c'est envoyé !
(En gardant toujours le tout highly paramétrable tant qu'on a une option par défaut c'est ce qui compte ET libre (open source, toussa, etc))
Boum: PickyPaste, based on Zerobin's core, that's for PickyPeople who wants robustness (yeay Zerobin) AND super-easy-to-use. DONE!
Le but de l'appli est surtout de pouvoir l'utiliser via le snippet: Une page intéressante que j'aimerais partager ? Alors faut quelque chose d'aussi simple que le traditionnel bouton Partager, sinon les gens ne verront aucune raison à ce qu'ils se cassent le cul à devoir faire des trucs en plus compliqués.
Alors on leur donne juste un favoris à cliquer dessus, hop, ça ouvre un nouvel onglet avec le message préremplis avec l'adresse de la page où on se trouvait.
On rentre l'email du destinataire (pourra y avoir une liste par défaut plus tard, genre se faire une liste de contact et tout, mais tout en restant KISS) (et ça sera aussi facilement modulable, donc le choix de l'email n'est pas forcé) ainsi que le sien si on veut pouvoir être répondu,
Les autres options ont toutes une valeur par défaut (avec une ptite explication quand au fonctionnement du "BurnAfterReading" activé par défaut), les options classiques de Zerobin sont toutes là, mais on peut également préciser un serveur Zerobin alternatif ou un serveur mail alternatif (car plus tard, il est prévu de pouvoir avoir le client sur son pc, en .html pour éviter contre une prise de domaine).
Le mail envoyé comporte une petite explication sommaire du pourquoi et du comment et utilise l'entête Reply-To si l'adresse email fournie est valide.
Le code source de l'app est disponible en bas de la page :)
Next to come: The English version (and a lot of other stuff)
PS: Bon, ne faites pas trop attention au design hein :p c'pas mon fort :3
Sujet lié: http://www.olissea.com/bbs/?tid=962
There might be some easier ways to do that but that's the easiest I found so far…
As usual, not surprisingly, Python is better (IMO).
Python:
try:
foo()
except ValueError:
bar()
PHP:
It's actually pretty easy when you implement your own errors (throw new Exception then catch it with a try…catch) but how to catch errors this easily and being able to handle them that easily? Well, turn them into exceptions!
set_error_handler(function($errno, $errstr){throw new Exception($errno);});
try
{
file_get_contents('lol');
}
catch(Exception $e)
{
echo 'Error n°',$e->getMessage();
}
restore_error_handler();
I still prefer Python… I think I'll always do. </PHPTROLL> </PYTHONFAN>
As usual, not surprisingly, Python is better (IMO).
Python:
try:
foo()
except ValueError:
bar()
PHP:
It's actually pretty easy when you implement your own errors (throw new Exception then catch it with a try…catch) but how to catch errors this easily and being able to handle them that easily? Well, turn them into exceptions!
set_error_handler(function($errno, $errstr){throw new Exception($errno);});
try
{
file_get_contents('lol');
}
catch(Exception $e)
{
echo 'Error n°',$e->getMessage();
}
restore_error_handler();
I still prefer Python… I think I'll always do. </PHPTROLL> </PYTHONFAN>
Very usefull PHP hacksheet!
Ça serait bien si pour certains astuces il pouvait donner la source :/
Un truc sympa avec la boucle for :
Au lieu de sortir le compteur de la boucle, sortez le juste de la condition.
Donc au lieu de passez de :
for($i = 0; $i < count($array); $i++)
À :
$count = count($array);
for($i = 0; $i < $count; $i++)
Faites plutôt :
for($i = 0, $count = count($array); $i < $count; $i++)
Beaucoup ignorent qu'on peut initialiser plusieurs variables dans la boucle for :)
Un truc sympa avec la boucle for :
Au lieu de sortir le compteur de la boucle, sortez le juste de la condition.
Donc au lieu de passez de :
for($i = 0; $i < count($array); $i++)
À :
$count = count($array);
for($i = 0; $i < $count; $i++)
Faites plutôt :
for($i = 0, $count = count($array); $i < $count; $i++)
Beaucoup ignorent qu'on peut initialiser plusieurs variables dans la boucle for :)
Ah pas mal, j'ignorais cette histoire de wrapper avec file_get/put_contents :)
"file_put_contents("compress.zlib://$filename", $content); # Écrire et compresser en une ligne
$content = file_get_contents("compress.zlib://$filename"); # Lire un fichier compressé en une ligne"
Thanks
Tiens c'est où sur la doc ? :(
EDIT: Trouvé : http://www.php.net/manual/en/wrappers.php (pas très clair je trouve)
"file_put_contents("compress.zlib://$filename", $content); # Écrire et compresser en une ligne
$content = file_get_contents("compress.zlib://$filename"); # Lire un fichier compressé en une ligne"
Thanks
Tiens c'est où sur la doc ? :(
EDIT: Trouvé : http://www.php.net/manual/en/wrappers.php (pas très clair je trouve)
Fulltextrssfeed vous connaissez ?
C'est un chouette service qui permet de transformer vos RSS "tronqués" en leur version complète :) Très pratique surtout lorsque l'admin du site ne répond pas à vos demandes par email ^^'
Mais voilà, les malotrus ont décidé de ne pas respecter leur neutralité et de modifier légèrement de façon subreptice le flux rss "complet" qu'ils nous renvoient en y introduisant un tracker >:(
Alors certes, il existe sûrement des alternatives (que je vais devoir trouvé, car, en plus de ça, ils invalident le flux RSS et, même si d'habitudes ça ne pose pas problème, KrISS, quant à lui ne supporte les flux non conformes (et il a raison !! http://tontof.net/?2013/03/22/10/13/16-mise-a-jour-kriss-feed-passe-deja-en-version-6 ))
… mais vu que créer un ptit script pour enlever le tracker fut très facile à mettre en place, je vous livre donc le code :) ou vous pouvez aussi directement utiliser ma version online (mais je ne promet pas qu'elle restera disponible, voilà pourquoi je vous donne le code en plus ^^)
C'est un chouette service qui permet de transformer vos RSS "tronqués" en leur version complète :) Très pratique surtout lorsque l'admin du site ne répond pas à vos demandes par email ^^'
Mais voilà, les malotrus ont décidé de ne pas respecter leur neutralité et de modifier légèrement de façon subreptice le flux rss "complet" qu'ils nous renvoient en y introduisant un tracker >:(
Alors certes, il existe sûrement des alternatives (que je vais devoir trouvé, car, en plus de ça, ils invalident le flux RSS et, même si d'habitudes ça ne pose pas problème, KrISS, quant à lui ne supporte les flux non conformes (et il a raison !! http://tontof.net/?2013/03/22/10/13/16-mise-a-jour-kriss-feed-passe-deja-en-version-6 ))
… mais vu que créer un ptit script pour enlever le tracker fut très facile à mettre en place, je vous livre donc le code :) ou vous pouvez aussi directement utiliser ma version online (mais je ne promet pas qu'elle restera disponible, voilà pourquoi je vous donne le code en plus ^^)
(Suite de mon précédent shaarlink)
En faite, Il existe bien des techniques pour créer des "Décorateurs" en PHP (aka surcharger une fonction) à base de POO mais … meh, j'accroche pas perso, j'trouve ça lourd.
http://www.croes.org/gerald/blog/le-decorateur-decorator-en-php/44/
https://fr.wikipedia.org/wiki/D%C3%A9corateur_%28patron_de_conception%29#Exemple_en_PHP
(merci à debetux pour les liens, je ne sais plus si tu as un site ou un blog l'ami ?)
En faite, mon but initiale était de tenter d'adapter une app (KrISS) sans aller modifier son code. Charger son code, puis le mien afin de modifier dynamiquement ce dont j'aurais besoin.
En espérant que cela minifierait la quantité de modifications manuelles requise à chaque update.
Timo m'a répondu qu'il existait bien quelques fonctions PHP pour faire ce que je cherchais mais à cela je rétorquerais qu'il y a un manque d’inter-portabilité car ce ne sont malheureusement pas des fonctions standards en PHP :/ ce qui nécessite donc un module. (Le shaarlink de Timo: http://lehollandaisvolant.net/index.php?mode=links&id=20130327133011 d'ailleurs reshaarlinker par sebsauvage http://sebsauvage.net/links/?rpwfvg :))
Il me resterait bien la solution que je voulais éviter de modifier le code via une petite regex:
<?php
$newFunc = 'function troll()
{
# Do some weird stuff ꔆ
old_troll(); # Calling the old troll
}';
# La nouvelle fonction peut-être déclarée avant l'ancienne et la nouvelle peut quand même référencer l'ancienne sans problème BECAUSE PHP!! OK? Faut bien que PHP ait quelques avantages #PHP_troll_forever
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/originalCode.php', str_replace('function troll(', $newFunc."\n".'function old_troll(', file_get_contentst($_SERVER['DOCUMENT_ROOT'].'/originalCode.php')));
?>
Désolé, j'aime les longues lignes, ça va pour la lecture ??
Je pense que ça serait sûrement la solution la plus simple à mettre en place sans devoir ennuyer le développeur pour adapter son code :/
En faite, Il existe bien des techniques pour créer des "Décorateurs" en PHP (aka surcharger une fonction) à base de POO mais … meh, j'accroche pas perso, j'trouve ça lourd.
http://www.croes.org/gerald/blog/le-decorateur-decorator-en-php/44/
https://fr.wikipedia.org/wiki/D%C3%A9corateur_%28patron_de_conception%29#Exemple_en_PHP
(merci à debetux pour les liens, je ne sais plus si tu as un site ou un blog l'ami ?)
En faite, mon but initiale était de tenter d'adapter une app (KrISS) sans aller modifier son code. Charger son code, puis le mien afin de modifier dynamiquement ce dont j'aurais besoin.
En espérant que cela minifierait la quantité de modifications manuelles requise à chaque update.
Timo m'a répondu qu'il existait bien quelques fonctions PHP pour faire ce que je cherchais mais à cela je rétorquerais qu'il y a un manque d’inter-portabilité car ce ne sont malheureusement pas des fonctions standards en PHP :/ ce qui nécessite donc un module. (Le shaarlink de Timo: http://lehollandaisvolant.net/index.php?mode=links&id=20130327133011 d'ailleurs reshaarlinker par sebsauvage http://sebsauvage.net/links/?rpwfvg :))
Il me resterait bien la solution que je voulais éviter de modifier le code via une petite regex:
<?php
$newFunc = 'function troll()
{
# Do some weird stuff ꔆ
old_troll(); # Calling the old troll
}';
# La nouvelle fonction peut-être déclarée avant l'ancienne et la nouvelle peut quand même référencer l'ancienne sans problème BECAUSE PHP!! OK? Faut bien que PHP ait quelques avantages #PHP_troll_forever
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/originalCode.php', str_replace('function troll(', $newFunc."\n".'function old_troll(', file_get_contentst($_SERVER['DOCUMENT_ROOT'].'/originalCode.php')));
?>
Désolé, j'aime les longues lignes, ça va pour la lecture ??
Je pense que ça serait sûrement la solution la plus simple à mettre en place sans devoir ennuyer le développeur pour adapter son code :/
-.- En Python, c'est super simple :/
En PHP faudrait que chaque fonction soit référencée dans un array du style array('functionName' => 'functionName'); mais j'ignore quel serait l'impact sur les performances :/
Et quand bien même, ça a encore des limitations.
En Python:
L'application:
def a():
pass
# And you can call it normally
Le patch:
def a():
# Do some more stuff
a() # Then call "a" normally
(C'est le principe d'un décorateur quoi, mais je pourrais aussi simplement remplacer la fonction sans appeler l'ancienne fonction)
En PHP:
function lol()
{
}
$functions = array('lol' => 'lol');
# And you call it using $functions['lol']();
Le patch:
$functions['lol'] = function() use($functions)
{
static $lol;
if($lol === null) $lol = $functions['lol'];
# Do some more stuff …
$lol();
};
# To call it, it's the same than before $functions['lol']();
EDIT: Il existe bien des techniques pour créer des "Décorateurs" en PHP (aka surcharger une fonction) (à base de POO) mais ... meh. J'accroche pas perso, j'trouve ça lourd.
En PHP faudrait que chaque fonction soit référencée dans un array du style array('functionName' => 'functionName'); mais j'ignore quel serait l'impact sur les performances :/
Et quand bien même, ça a encore des limitations.
En Python:
L'application:
def a():
pass
# And you can call it normally
Le patch:
def a():
# Do some more stuff
a() # Then call "a" normally
(C'est le principe d'un décorateur quoi, mais je pourrais aussi simplement remplacer la fonction sans appeler l'ancienne fonction)
En PHP:
function lol()
{
}
$functions = array('lol' => 'lol');
# And you call it using $functions['lol']();
Le patch:
$functions['lol'] = function() use($functions)
{
static $lol;
if($lol === null) $lol = $functions['lol'];
# Do some more stuff …
$lol();
};
# To call it, it's the same than before $functions['lol']();
EDIT: Il existe bien des techniques pour créer des "Décorateurs" en PHP (aka surcharger une fonction) (à base de POO) mais ... meh. J'accroche pas perso, j'trouve ça lourd.
Hop, juste histoire de me garder ça sous la main si jamais j'en ai besoin.
Et je vais remettre le commentaire de sebsauvage à propos de ce lien ici afin que si jamais je (ou vous) fais une recherche avec les bons mots, vous tombiez aussi sur ce lien :)
" En php, pour l'upload de fichiers vous êtes soumis aux paramètres de votre hébergement (upload_max_filesize et post_max_size). Mais si vous n'êtes pas maître du serveur, vous ne pouvez peut-être pas les modifier.
A défaut, vous pouvez utiliser ces libs qui permettent l'upload de fichier de manière pratiquement illimitée, en procédant par morceaux (chunks), mais de manière transparente pour l'utilisateur. Elles sont constituées d'une lib javascript et d'un bout de php côté serveur.
https://code.google.com/p/ax-jquery-multiuploader/
http://www.plupload.com/ (https://github.com/moxiecode/plupload) "
Et je vais remettre le commentaire de sebsauvage à propos de ce lien ici afin que si jamais je (ou vous) fais une recherche avec les bons mots, vous tombiez aussi sur ce lien :)
" En php, pour l'upload de fichiers vous êtes soumis aux paramètres de votre hébergement (upload_max_filesize et post_max_size). Mais si vous n'êtes pas maître du serveur, vous ne pouvez peut-être pas les modifier.
A défaut, vous pouvez utiliser ces libs qui permettent l'upload de fichier de manière pratiquement illimitée, en procédant par morceaux (chunks), mais de manière transparente pour l'utilisateur. Elles sont constituées d'une lib javascript et d'un bout de php côté serveur.
https://code.google.com/p/ax-jquery-multiuploader/
http://www.plupload.com/ (https://github.com/moxiecode/plupload) "
Site qui propose de dire quelle fonction utiliser en Python à partir d'une fonction PHP.
Le concept est juste sensationnel :)
Le concept est juste sensationnel :)