Catégorie : Tutoriels.

Installer LibreOffice sous Ubuntu en .deb

Capture d'écran : LibreOffice - écran de démarrage

Hier je vous ai parlé de LibreOffice mais j’avais ommis de vous dire comment l’installer plus par flemme car je ne savais pas qu’on pouvait l’installer en .deb. Je n’avais pas vu sur le site officiel que les RPM à installer et je ne vous cache pas que les transormer en .deb avec alien ne m’enchantait pas vraiment. D’ailleurs si vous voulez vous y amuser le tutoriel de WebDevOnLinux est très bien fait.

Mais aujourd’hui je vais vous expliquer d’abord où télécharger les paquets en .deb puis comment les installer. Bon pour l’adresse c’est ici : download.documentfoundation.org/libreoffice/testing/. Il ne vous reste plus qu’à choisir le fichier compressé en tar.gz qui vous convient. Pour moi, c’est en 32 bits. Pour ceux qui sont en 64 bits, il vous faudra bien sûr adapter les commandes qui suivent. Donc pour installer :

cd
wget http://download.documentfoundation.org/libreoffice/testing/LO_3.3.0-beta1_Linux_x86_install-deb_en-US.tar.gz
sudo tar zxvf LO_3.3.0-beta1_Linux_x86_install-deb_en-US.tar.gz
sudo dpkg -i en-US/DEBS/*.deb
sudo dpkg -i en-US/DEBS/desktop-integration/libreoffice3.3-debian-menus_3.3-9526_all.deb

La dernier paquet installé sert à intégrer LibreOffice dans votre environnement graphique.

Voilà c’est tout pour ce tuto, et n’oubliez surtout pas : BI-DOU-ILLEZ !

PHP : Tronquer un texte.

Image de ciseaux

Aujourd’hui je vous présente une petite fonction qui sert à tronquer un texte. Ça peut servir pour afficher un aperçu par exemple dans vos flux RSS ou encore pour ceux qui utilisent un blog où les articles sont tronqués à l’accueil. Bref pour ce que vous voulez… C’est une fonction que j’ai trouvé sur le net et que j’ai modifié pour ne pas découper les mots.

Paramètres

$text

Le texte à tronquer, ça c’était facile à deviner…

$count

Le nombre de caractères que l’on veut afficher.

$suffix

Une chaîne à afficher après le texte tronquer comme trois points de suspensions ou encore un lien vers la suite du contenu.

function xwords($text, $count, $suffix = "") {
  if (strlen($text) >= $count) {
    $text = substr($text, 0, $count);
    $space = strrpos($text, " ");
    if ($space) {
      $text = substr($text, 0, $space);
    }
  }
  return $text.$suffix;
}

Voilà c’est tout pour ce tuto, et n’oubliez surtout pas : BI-DOU-ILLEZ !

La fonction class_alias pour PHP < 5.3.0.

Logo PHP, http://static.php.net/www.php.net/images/php.gif, transformé en PNG.

Avant PHP 5.3.0, la fonction class_alias PHP n’existe pas mais il est possible de la créer soi-même. Pour ceux qui ne savent pas à quoi sert cette fonction, comme son nom l’indique elle permet de créer un alias pour une classe. J’ai trouvé cette fonction dans les notes de contribution de la doc PHP.

Mais quelle utilité ?

Vous avez une classe avec un nom super long, Class_Avec_Un_Nom_Super_Long par exemple, et vous en avez marre de devoir vous le coltiner à longueur de clavier… Et bien voilà à quoi sert cette fonction va vous permettre de l’appeler C par exemple.

Le code

On vérifie d’abord que la fonction n’est pas présente dans la version de PHP qu’on utilise moyennant un joli message d’erreur, d’où la structure conditionnelle… le if quoi ! ;-)

// La fonction à proprement parler :
if (!function_exists('class_alias')) {
  function class_alias($original, $alias) {
      eval('class ' . $alias . ' extends ' . $original . ' {}');
  }
}

// Exemple d'utilisation :
class_alias("Class_Avec_Un_Nom_Super_Long", "C");
// Au lieu de :
$class = new Class_Avec_Un_Nom_Super_Long();
// On peut maintenant faire :
$class = new C();

Voilà c’est tout pour ce tuto, et n’oubliez surtout pas : BI-DOU-ILLEZ !

Source : PHP.net.

PHP : Vérifier le format d’une adresse email.

Icône courrier

Un truc que j’aime bien en programmation, ce sont les expressions régulières. On peut notamment vérifier si le format d’une adresse email est bon. Dans l’absolu, ça ne vous dit pas si l’adresse existe vraiment. Pour cela il n’y a pas de solution miracle. Je vous présente donc une petite fonction qui vous permettra de vérifier la validité d’une adresse email :

function is_email($email) {
  $str   = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]';
  $domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)';
  $pattern = '/^'.$str.'+'.'(\.'.$str.'+)*'.'@'.'('.$domain.'{1,72}\.)+'.$domain.'{2,72}$/i';
  return preg_match($pattern, $email);
}

Voilà c’est tout pour ce tuto, et n’oubliez surtout pas : BI-DOU-ILLEZ !

Lancer une commande shell depuis PHP

Icone d'un terminal, shell.

Dans ce tutoriel nous allons voir comment exécuter une commande via le Shell à partir de PHP. Une petite recherche google vous démontrera que cette question intéresse pas mal de monde. Pourtant il existe une fonction PHP qui fait cela très bien : shell_exec.

Attention à ne pas faire n’importe quoi avec cette fonction ! Il est très important que vous relisiez vos script avant de les exécuter sous peine d’endommager votre système même si de mon expérience, j’ai constaté que les commandes les commandes qui requièrent les droits root ne sont pas exécutées.

Désactiver le safe_mode.

Pour les versions de PHP antérieures à PHP 5.3.0, il faut que le safe_mode soit désactivé. Cherchez dans votre php.ini (/etc/php5/apache2/php.ini pour Ubuntu) la ligne où il y safe_mode ou ajouter-la si elle n’existe pas.

safe_mode = Off

Redémarrez votre serveur Apache /etc/init.d/apche2 restart en tant que root et ce devrait être fonctionnel. Depuis PHP 5.3.0, cette fonctionnalité est obsolète.

Lancer une ou plusieurs commandes avec ou sans sortie.

Lancer une simple commande :

shell_exec("touch example.txt");

Si votre commande implique une sortie :

print shell_exec("ls example/");

ou encore mieux :

print "<pre>".shell_exec("ls example/")."</pre>";

Il est possible d’exécuter plusieurs commandes à la fois avec && ou en allant à la ligne :

print "<pre>".shell_exec("echo 'Test 1' > example1.txt && chmod 777 example1.txt")."</pre>";

print "<pre>".shell_exec("echo 'Test 1' > example1.txt > \n chmod 777 example1.txt")."</pre>";

print "<pre>".shell_exec("echo 'Test 1' > example1.txt >
chmod 777 example1.txt")."</pre>";

Lancer un script contenu dans un fichier.

Pour exécuter un script contenu dans un fichier, utilisez file_get_contents. Cette fonction permet de récupérer le contenu d’un fichier.

print "<pre>".shell_exec(file_get_contents("script.sh"))."</pre>";

Voilà c’est tout pour ce tuto, et n’oubliez surtout pas : BI-DOU-ILLEZ !

Source : Documentation PHP.

PHP : Fonction pour lister le contenu d’un dossier.

Icône dossier

Voici une ch’tite fonction PHP pour lister le contenu de vos dossiers, ça sert toujours d’avoir ce genre de fonction sous la main. La fonction renvoie un tableau des éléments contenu dans le dossier.

Paramètres

$dir

C’est le chemin PHP du fichier. Attention donc au répertoire courant si vous faites des inclusion (fonction include ou require).

$prefix

Par défaut il est à false. S’il est à true. Le chemin du dossier ($dir) sera placé avant le nom du fichier ou du sous-répertoire.

$type

Définit le type de fichier à afficher :

  • Si $only == false, tous les fichiers et dossiers seront listés.
  • Si $only == "file", seuls les fichiers seront listés.
  • Si $only == "dir", seuls les dossiers seront listés.

Le code

function list_dir($dir, $prefix = false, $type = false) {
  $list = array();
  //On supprime le slash final.
  $dir = preg_replace("#(.+)(\/{1})$#isUu", "$1", $dir);
  if (is_dir($dir)) {
    if ($od = opendir($dir)) {
      while (($file = readdir($od)) !== false) {
        if ($file != ".." and $file != ".") {
          /*
          On ne tient pas compte de  .. et .
          qui sont le répertoire courant et le repertoire mère.
          */
          if (is_dir("$dir/$file") and $file != "file") {
            // Si c'est un dossier et que l'on affiche les dossiers.
            $list[] = ($prefix ? "$dir/": "").$file;
          }
          else if (is_file("$dir/$file") and $type != "dir") {
            // Si c'est un fichier et que l'on affiche les fichiers.
            $list[] = ($prefix ? "$dir/": "").$file;
          }
        }
      }
      closedir($od);
    }
  }
  return $list;
}

Voilà c’est tout pour ce tuto, et n’oubliez surtout pas : BI-DOU-ILLEZ !