Actualités

Memo: generation sitemap.xml avec wget avec linux

Créez un fichier sitemap.sh: echo ‘<?xml version= »1.0″ encoding= »UTF-8″?> <urlset xmlns= »http://www.sitemaps.org/schemas/sitemap/0.9″>’ wget –spider –recursive –no-verbose $1 \ 2>&1 | grep -v ‘OK’ | grep ‘URL:’ \ | sed -e »s|.*URL:\([^ ]*\) .*|\t<url>\n\t\t<loc>\\1</loc>\n\t\t<priority>0.5</priority>\n\t</url>| » echo ‘</urlset>’ Ensuite : sh sitemap.sh https://gaboweb.com > sitemap.gaboweb.xml Votre sitemap est généré !   Notre sitemap.xml a été généré de cette manière.


Lire la suite >

Memo : Installation automatique de wordpress + FTP + mysql sous linux ubuntu

Voici un script d’installation automatique de wordpress, avec création d’un ftp et d’une base de données. Définissez : $MYSQL_USER $MYSQL_PASSWORD Dépéndance : apg display_usage() { echo « This script must be run with super-user privileges. » echo « You have to choose a username » echo « \nUsage:\n$0 [USERNAME] \n » } if [ $# -le 0 ] then display_usage exit […]


Lire la suite >

Memo: SetEnvIf apache2 + lang + country + environnement + projet

Un petit mémo pour une chose que je cherchais à faire depuis pas mal de temps. Un virtualhost apache qui déclare certaines variables d’environnement de manière automatique en fonction d’une url normalisée. Quand vous faites des sites internet internationaux avec environnement de dev, preprod et prod, il est souvent utile d’avoir des urls à rallonge […]


Lire la suite >

Zend + Youtube API Upload + APC + Ajax

Petits tests avec L’API Youtube, l’idée étant via une interface unique de publier une vidéo sur Youtube tout en gardant l’option de la télécharger. Les classes Zend Zend_Gdata_YouTube et Zend_Gdata_ClientLogin sont utilisées. Voir la demo


Lire la suite >

Memo quelques commandes bash

# php syntax checker find . -iname ‘*.php’ | sed ‘s/^/php -l /’ | bash | egrep -v ‘^No’ # auto add translate fonction in html page content (appox) sed -i ‘s/>\([^<« >]*\)</><?= _translate(« \1″)?></g’ * #get find . -type f | egrep ‘.(php|html|php)$’ | xargs cat | sed -e »s/_translate/\n_translate/g » | grep ‘^_translate’ | sed -e »s/\(.*\)\([\ »‘])\).*/\1/ » | […]


Lire la suite >

Memo: Gestion des fichiers de sauvegarde

Petit mémo perso pour la gestion des sauvegardes de site en tar.gz # repertoire contenant le site www.monsite.com/ # repertoire de sauvegarde save/ A mettre dans le crontab: # on sauvegarde le repertoire www.monsite.com dans le repertoire save. tar -cvzf save/www.monsite.com -`date ‘+%d-%B-%Y–%H_%M_%I’`.tar.gz ../www.monsite.com/ # on efface les sauvegarde de plus de 6 heures. find […]


Lire la suite >

Les langues faciles avec Apache (mod_rewrite)

Petit memo pour sélectionner facilement une langue avec apache pour les Urls du type: www.domain.com/fr/page.html www.domain.com/en/page.html www.domain.com/de/page.html Voici la conf apache: RewriteEngine On SetEnvIf Request_URI « ^/(..)/.*$ » lang=$1 En php, la langue se trouve dans : $_SERVER[‘lang’]


Lire la suite >

Ajout d’une ligne ou suppression d’une ligne avec SED

Petit memo perso pour ajouter ou supprimer une ligne en bash avec sed. Insertion de StringToInsert à la position n de file sed -i ‘ni StringToInsert’ file Exemple: Ajouter Hello World à la deuxième ligne de file : sed -i ‘2i Hello World’ file Effacer la ligne n sed -i ‘nd’ file Exemple: Effacer la […]


Lire la suite >

Mémo perso: resumer du texte sans couper les mots avec preg

Petit mémo: fonctions pour couper des textes et des phrases sans couper les mots avec preg_replace Deux utilisation différentes: La première fonction resumeString coupe un texte au plus près de la longueur maximale demandée. La deuxième fonction resumeSentence coupe un texte au plus près mais en respectant une césure, soit un caractère ‘,’ ou ‘;’ […]


Lire la suite >

Hébergement internet mutualisé: comment dissocier des domaines qui pointent sur le même document root avec un .htaccess et du rewriterule sous apache.

L’hébergement mutualisé… c’est assez frustrant quand on fait de l’hébergement de devoir intervenir sur une machine mutualisée avec pour seul levier de modification un .htaccess et un accès ftp ; mais bon, il faut bien faire avec parfois. Alors voici un fichier .htaccess à glisser à la racine (document_root) de votre hébergement mutualisé qui permet […]


Lire la suite >

Référencement naturel : nombres de mots clés tapés

En référencement naturel et positionnement, il coûte très cher de faire apparaître un site en première page des résultats pour un mot clé seulement. Ça tombe plutôt bien parce que de plus en plus d’internautes saisissent un mot clé pour chercher le nom du site et de plus en plus d’internautes précisent leurs recherches naturelles. […]


Lire la suite >

Entêtes (headers) d’une page html + detection du code HTTP

Petit mémo pour aller chercher l’entête d’une page (headers) et seulement l’entête. Expression régulière pour le code HTTP de la page, puis détéction de la nouvelle url si code 301. $url = « http://maboite.org/ »; $ch = curl_init($url); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_NOBODY, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERAGENT, ‘MyUserAgent’); curl_setopt($ch, CURLOPT_TIMEOUT, 5); $headers = curl_exec($ch); $CurlErr […]


Lire la suite >

Urlize ou string to url, mise à jour

Petit update de la fonction urlize postée précédemment. function urlize($string){ $find = array( ‘/[^A-Za-z0-9ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ]/’ #alphanum + accents ,’/[-]+/’ # multi – ,’/(^-)/’ # – as begin ,’/(-$)/’ # – as end ); $repl = array(‘-‘,’-‘, », »); return preg_replace($find, $repl, $string); }


Lire la suite >

WordPress, requêtes pour affichage des derniers commentaires et posts.

Pour ceux qui comme moi ont opté pour WordPress (pauvres de nous …), voici quelques requêtes utiles pour afficher les derniers commentaires, les derniers posts ou les commentaires les plus commentés. Bizarrement, les seuls plugins trouvés (2) ne fonctionnent pas (vive wordpress…). Les posts les plus commentés: select p.id, p.post_title,count(c.comment_ID) as cnt from wp_posts p, […]


Lire la suite >

Clavier mecanique VS clavier à membrane suite et fin.

Quand je vous disais que les claviers mécaniques permettent de taper plus vite: Avec clavier mécanique (Das keyboard 3): 51 words You reached 335 points, so you achieved position 14128 of 141327 on the ranking list You type 420 characters per minute You have 51 correct words and you have 1 wrong words Avec clavier […]


Lire la suite >

WYSIWYG-BINW3CC: soit What You See Is What You Get But Is Not W3C Compliant

Si dans vos interfaces d’administration (backoffice) vous installez des textarea WYSIWYG type Tinymce, Htmlarea, FCEditor vous avez déjà sans doute remarqué qu’il n’était pas toujours facile de garder des pages W3C compliants. Allez expliquer à vos clients que la propriété ALT est obligatoire dans les balises IMG… Voici donc une méthode automatisée, bien sympa, certe […]


Lire la suite >

clavier mecanique Vs clavier à membrane et Das keyboard

Depuis quelques temps, les habitudes des utilisateurs des « postes informatiques » ont changé. On sait qu’il faut un écran qui ne scintille pas et de bonne qualité pour les yeux. On sait qu’il faut une bonne chaise et être bien droit pour soigner son dos. Mais pour le clavier… en général on est pas très regardant […]


Lire la suite >

chroot pour limiter les commandes bash d’un utilisateur ssh (jails).

Un serveur dédié c’est bien mais ça coûte cher. La plupart du temps, je propose à mes clients de l’hébergement mutualisé avec accès FTP, en général tout le monde connait et sait utiliser un client FTP mais les mises à jour avec ce protocole sont fastidieuses. Heureusement, certains clients utilisent parfois de bons outils : […]


Lire la suite >

Upload de fichier avec progress bar

Voici un petit exemple d’upload de fichier avec des statistiques détaillé sur l’upload en cours et une barre de progression. Cette fonctionnalité est surtout utile quand on commence à uploader des fichiers volumineux. Pour info, ce module d’upload utilise la rfc1867 et la fonctionnalité utilisée est non-obstrusive (je détaillerais le développement plus tard si j’ai […]


Lire la suite >

Firefox contre Internet Explorer : deux exemples concrets.

Dans la guerre Internet Explorer contre Mozilla Firefox beaucoup de critères entres en jeux: On dit que Firefox est plus rapide que Internet Explorer On dit que Internet Explorer est moins gourmand en mémoire que Firefox On dit que Firefox respecte les normes, contrairement à Internet Explorer. On dit pas mal de choses, un peu […]


Lire la suite >

Outil de vérification pour seo.

Voici un outil qui permet de vérifier si une page est optimisée pour le seo. Entrez votre url et vous aurez les résultats suivants : Url (à vous de définir si elle est optimisée) Titre, un indicateur vous aide sur la longueur Description, un indicateur vous aide sur la longueur Compte les H1 -> H6 […]


Lire la suite >

Premier PhpCamp

L’AFUP organise samedi 07 juin son premier PhpCamp qui se tiendra à la Cantine de 10h00 à 18h00. Comme vous le savez, les barCamp ne sont pas vraiment des rendez vous où vous pouvez vous coller au fond, près du radiateur mais plutôt des journées de rencontres productives. 80 Places était dispo lors de l’ouverture […]


Lire la suite >

Petit script pour surveillance leaching

Voici un petit script de surveillance des logs apache dont je me sert pour vérifier de ne pas me faire leacher : #!/bin/bash HIT_MAX=100; LOG_PATH= »/var/log/apache2″; for i in `sed -e ‘s/^\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\)\s.*$/\1/’ \ $LOG_PATH/*.log | grep -v ‘[[:alpha:]]’ | sort -u` do HIT=`grep $i $LOG_PATH/*.log | wc -l` if [ $HIT -gt $HIT_MAX ]; then echo […]


Lire la suite >

Versionner des composants externes : svn externals

Pour avoir vu pas mal de pratiques différentes sur l’utilisation de librairies externes dans un projet, voici un memo sur l’utilisation de repository externes : svn externals Les svn externals permettent d’utiliser un repository de composants externes à votre projet et d’en utiliser le versionning. Vous pouvez choisir de mettre à jour ou non ce […]


Lire la suite >

vim sous windows comme sous linux

Parfois pour des besoins divers je suis « obligé » d’utiliser windows. J’ai pas réussi à me faire à gimp, j’utilise donc photoshop. Pour intégrer quelques pages HTML, j’ai du choisir un éditeur de texte => VIM pour windows mais horribbbbbleeee : par défaut le fond est blanc et la police est …étrange (tahoma bold je crois). […]


Lire la suite >

Faire du proxy avec apache pour eviter d’attendre des propagations DNS

J’ai souvent entendu des prestataires expliquer au client que la migration d’un nouveau site peut être longue à cause du temps de propagation DNS, petite explication: Les serveurs DNS (domain name serveur) ou serveurs de noms sont (en gros) des bases de données où sont stockées les binômes adresseIp/nom de domaine, cela afin de retrouver […]


Lire la suite >

Conversion string to url, fonction Urlize

Petit memo perso, transformation d’une phrase en url (avec accents puisque maintenant google et les dernières navigateurs acceptent). function urlize($string){ $find = array( ‘/([\[\(].*[\]\)])/’ # bracket and co ,’/[\s]/’ # space and multispace ,’/[…,!?.;:“’”\’ »&+]/’ # blacklisted chars ,’/[-]+/’ # multi – ,’/(^-)/’ # – as begin ,’/-$/’ # – as end ); $repl = array( »,’-‘,’-‘,’-‘, », »); […]


Lire la suite >