Accueil

Trouver le type d’une variable (PHP)

Wakonda - PHP Posté le 21 décembre 2015

Pour trouver le type d'une fonction, on utilisera en PHP la fonction « gettype ».

Exemple :

$data = array(1, 1.6, NULL, new stdClass, 'foo');

foreach ($data as $value) {
  echo gettype($value), "\n";
}

/*
Retournera :

integer
double
NULL
object
string
*/

 

Lire ...

Transformer une chaîne de caractères en tableau en PHP

Wakonda - PHP Posté le 21 décembre 2015

En PHP, il existe deux fonctions qui permettent de transformer une chaîne de caractères en un tableau.

La fonction "explode"

La fonction est probablement la plus utilisée. Celle-ci va couper une chaîne en segments par rapport à un déliminateur.

Exemple d'utilisation :

$str = "pomme, fraise, poire";
$str_to_array = explode(", ", $str);

// $str_to_array sera égale à array("pomme", "fraise", "poire")

La fonction "str_split"

Cette fonction est semblable à la précédente, sauf qu'elle ne scinde pas une chaîne par rapport à un délimiteur mais par rapport à une longueur passée en paramètre.

Exemple d'utilisation :

$str = "Bataille d'Austerlitz : 1805";
$str_to_array = str_split($str, 5);

// $str_to_array sera égale à array("Batai", "lle d", "'Aust", "erlit", "z : 1", "805")

 

Lire ...

Utiliser Zend Framework dans Symfony2

Wakonda - Symfony Posté le 21 décembre 2015

1 - Télécharger ZF

2 - Copiez-collez le code source dans un dossier (nommé, par exemple, « ZF »). Placez ce dossier dans le dossier « Vendor » de Symfony

3 - Dans le fichier « autoload.php » (fonction « registerPrefixes »), ajoutez cette ligne :

Zend_' => __DIR__.'/../vendor/zend/library

4 - A la fin du fichier “autoload.php”, ajoutez ceci :

set_include_path(__DIR__.'/../vendor/ZF/library/'.PATH_SEPARATOR.get_include_path());

require_once __DIR__.'/../vendor/ZF/library/Zend/Loader/Autoloader.php';

Zend_Loader_Autoloader::getInstance();

5 - Utilisation d’une fonctionnalité de ZF dans un contrôleur Symfony2 :

\Zend_Search_Lucene_Analysis_Analyzer::setDefault(new \Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive());

 

Lire ...

Wamp : MySQL refuse de démarrer

Wakonda - SQL Posté le 4 novembre 2015

Il n'y a rien de plus frustrant de démarrer WAMP et que de constater que l'icône reste invariablement "orange" malgré plusieurs redémarrages. Si cela vous est déjà arrivé, vous pouvez tenter la manipulation suivante : allez dans le dossier "data" de MySQL ("C:\wamp\bin\mysql\mysql5.6.17\data"). Vous devriez y trouver les fichiers suivants : auto.cnf, xxxxxxxxx.err, xxxxxxxxx.pid, ib_logfile0 and ib_logfile1. Supprimez les tous et relancez Wamp. Il devrait démarrer sans aucun problème !

Lire ...

Récupérer une base de données MySQL avec les fichiers *.ibd et *.frm

Wakonda - SQL Posté le 3 novembre 2015

Il peut arriver dans la vie d'un développeur qu'il perde malencontreusement les données d'une table et qu'il ne lui reste plus que des fichiers *.ibd et *.frm pour se consoler. Heureusement, il existe une technique pour recouvrer sa base de données avec toutes ses tables et, bien entendu, les données.

Avant de débuter ce tutoriel, prenez l'ensemble de vos fichier *.frm et *.ibd et copier afin d'éviter de predre vos précieuses données au cas où une étape échouerait.

La première consiste à recréer la table. Pour cela, nous allons nous servir d'un utilitaire fourni par MySQL et appelé "mysqlfrm.exe". Pour commencer, ouvrez une console ("cmd.exe") en mode administrateur. Placez-vous dans le dossier où se trouve l'exécutable précité puis la commande suivante :

mysqlfrm --server=root:motdepasse@localhost:3306 C:\wamp\bin\mysql\mysql5.6.17\data\nom_de_votre_bdd\nom_de_votre_table.frm --port=3310

En lançant cette commande, la console va vous afficher la commande SQL permettant la création de votre table (elle commencera par "CREATE TABLE ...") avec toutes les colonnes qui s'y trouvaient originellement. Copiez cette commande SQL, créez votre base de données et collez-la avant de l'exécuter. Votre table devrait se créer sans aucun problème. Vous devrez répéter cette opération pour l'ensemble de vos tables.

Récupération des données

Maintenant que vos tables sont prêtes, il va falloir les remplir. Les opérations qui suivent doivent faites pour toutes les tables à restaurer. Commencez par lancer la requête SQL suivante :

ALTER TABLE `nom_de_votre_table` DISCARD TABLESPACE;

Prenez le fichier *.ibd de la première table et copiez-le dans le dossier "C:\wamp\bin\mysql5.6.17\nom_de_votre_bdd\". Pour finir, lancez la requête suivante :

ALTER TABLE `nom_de_votre_table` IMPORT TABLESPACE;

Et là, le miracle devrait s'opérer ; en ouvrant la table vous devrez retrouver toutes vos données !

Resources utiles :

Lire ...

JS : Trier un tableau + encodage

Wakonda - JavaScript Posté le 22 septembre 2015

Après avoir trier un tableau en Javascript, j'ai constaté que les éléments commençant par des caractères spéciaux (les accents français, par exemple) était mal trié, ces derniers se trouvant en dernière position alors qu'il commençait par "Î".

En effet, en utilisant simplement la fonction "sort" de Javascript, on obtient le résultat suivant :

var arr = ["Yonne", "Alsace", "Île de France"];
arr = arr.sort();

// Résultat : ["Alsace", "Yonne", "Île de France"]

Pour parer à cela, JS nous offre une fonction bien utile, "localeCompare"

Exemple d'utilisation :

var arr = ["Yonne", "Alsace", "Île de France"];

// Déclaration de la fonction de tri
function frsort(a,b) {
  return a.localeCompare(b);
}

// Utilisation
arr = arr.getUnique().sort(frsort);

// Résultat : ["Alsace", "Île de France", "Yonne"]

 

Lire ...

JS : Trier un tableau d'objets

Wakonda - JavaScript Posté le 22 septembre 2015

Trier un tableau en Javascript est d'une simplicité enfantine, mais trier un tableau d'objets est un tout petit peu moins évident ...

Pour cet exemple, nous prendrons un tableau d'objets se présentant sous la forme suivante :

[
  { code: 68, department: 'Haut-Rhin' },
  { code: 89, department: 'Yonne' },
  { code: 31, department: 'Haute-Garonne' },
  { code: 29, department: 'Finistère' },
  { code: 68, department: 'Haut-Rhin' },
  { code: 75, department: 'Île de France'}
]

Trions le tableau

Le langage Javascript possède une fonction sobrement intitulé "sort" qui marche à merveille dans le cas d'un simple tableau. Seulement, par rapport au JSON précédent, il se peut que vous ayez le besoin de trier selon le "code" ou encore le "department". Pour ce faire, vous pouvez procéder comme suit :

// Trie par 'code'
items.sort(function (a, b) {
  if (a.code > b.code)
    return 1;
  if (a.code < b.code)
    return -1;

  return 0;
});

// Trie par 'department'
items.sort(function (a, b) {
  if (a.department > b.department)
    return 1;
  if (a.department < b.department)
    return -1;

  return 0;
});

 

Lire ...

Accéder aux variables de "php.ini"

Wakonda - PHP Posté le 26 août 2015

Le fichier "php.ini" contient une multitude de variables permettant de configurer votre installation PHP. Par exemple, d'activer ou de désactiver une extension ou encore déterminer la taille maximale des fichiers qu'il sera possible d'uploader.

On utilise la fonction « ini_get » pour pouvoir lire les variables qui se trouvent dans le fichier « php.ini ».

$sizeMax = ini_get("upload_max_filesize");

Il est également possible de les modifier en utilisant la fonction « ini_set » :

​ini_set("upload_max_filesize", “3M”);

Remarque :

La valeur donnée pour la variable « upload_max_filesize » se présente sous la forme “6M”, le “M” signifiant mégaoctet. Pour convertir cette donnée en octet, on utilisera la fonction suivante :

private function convertBytes($value)
{
        if (is_numeric($value))
        {
                return $value;
        } 
        else
        {
                $value_length = strlen( $value );
                $qty = substr( $value, 0, $value_length - 1 );
                $unit = strtolower( substr( $value, $value_length - 1 ) );
                switch ( $unit )
                {
                        case 'k':
                                $qty *= 1024;
                                break;
                        case 'm':
                                $qty *= 1048576;
                                break;
                        case 'g':
                                $qty *= 1073741824;
                                break;
                }
                return $qty;
        }
}

 

Lire ...

Détecter le protocole utilisé en PHP

Wakonda - PHP Posté le 26 août 2015

Le code suivant vous permettra de détecter le protocole utilisé sur la page courante :

$protocol = strtolower(substr($_SERVER["SERVER_PROTOCOL"],0,5))=='https'?'https':'http';

 

Lire ...

Fonction pour supprimer les caractères spéciaux en PHP

Wakonda - PHP Posté le 26 août 2015

La gestion des caractères spéciaux ("é", "ñ", ...) est souvent délicate et il peut, de ce fait, être utile de les supprimer afin de faciliter la manipulation d'une chaîne de caractères.

Fonctions de suppression (1)

public function strip_accent($string)
{
        $patterns = array();
        $replacements = array();
                
        $patterns[0] = '/[\xe8-\xeb]/';
        $patterns[1] = '/[\xc8-\xcb]/';
        $patterns[2] = '/[\xc0-\xc5]/';
        $patterns[3] = '/[\xe0-\xe5]/';
        $patterns[4] = '/[\xf2-\xf6\xf8]/';
        $patterns[5] = '/[\xd2-\xd6\xd8]/';
        $patterns[6] = '/[\xcc-\xcf]/';
        $patterns[7] = '/[\xec-\xef]/';
        $patterns[8] = '/[\xd9-\xdc]/';
        $patterns[9] = '/[\xf9-\xfc]/';
        $patterns[10] = '/[\xff]/';
        $patterns[11] = '/[\xdd]/';
        $patterns[12] = '/[\xe7]/';
        $patterns[13] = '/[\xc7]/';
        $patterns[14] = '/[\xf1]/';
        $patterns[15] = '/[\xd1]/';
                        
        $replacements[0] = 'e';
        $replacements[1] = 'E';
        $replacements[2] = 'A';
        $replacements[3] = 'a';
        $replacements[4] = 'o';
        $replacements[5] = 'O';
        $replacements[6] = 'I';
        $replacements[7] = 'i';
        $replacements[8] = 'U';
        $replacements[9] = 'u';
        $replacements[10] = 'y';
        $replacements[11] = 'Y';
        $replacements[12] = 'c';
        $replacements[13] = 'C';
        $replacements[14] = 'n';
        $replacements[15] = 'N';
                
        $string = utf8_decode($string);         
        $string = preg_replace($patterns, $replacements, $string);
                        
        return $string;
}

A utiliser pour les encodages de type ISO-8859-1 qui codent les caractères spéciaux (comme les accents) sur 2 octets.

Fonctions de suppression (2)

function stripAccents($string){
        return strtr($string,'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ',
'aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY');
}

Remarque :

Lorsque la page est encodée en UTF-8, alors les caractères spéciaux (comme les accents) se composent de deux bits. Ainsi :

echo strlen(« é »);

Affichera « 2 ».

Si on encode la page en UTF-8 sans Bom (ANSI as UTF-8, sous Notepad++), la même commande affichera « 1 ».

Lire ...

Un "var_dump" en Javascript

Wakonda - JavaScript Posté le 26 août 2015

La fonction très utile en PHP "var_dump" n'existe hélas en Javascript. Toutefois, il est possible d'en utiliser une qui se rapproche de celle de PHP. La voici :

function dump(obj) {
    var out = '';
    for (var i in obj) {
        out += i + ": " + obj[i] + "\n";
    }

    alert(out);

    var pre = document.createElement('pre');
    pre.innerHTML = out;
    document.body.appendChild(pre)
}

 

Lire ...

Coloration syntaxique de Twig sous Notepad++

Wakonda - Twig Posté le 26 août 2015

Si vous avez décidé de développer votre site Internet sous le framework Symfony 2, il se peut que vous utilisiez le moteur de template "Twig". Hélas, l'éditeur de texte Notepad++ ne possède, nativement, pas de coloration syntaxique. Heureusement des développer ont lavé cet affront ...

Pour commencer, téléchargez le plugin sur ce lien : https://github.com/Banane9/notepadplusplus-twig.

Ouvrez Notepad++, et suivez cette procédure :

Notepad++ Twig

Dans la fenêtre qui s’ouvre cliquez sur le bouton « Import » puis importer le fichier xml précédemment téléchargé :

Notepad++ Twig

Une fois cette étape terminée, la coloration syntaxique devrait être disponible sous Notepad++.

Lire ...

Rechercher

Tags

Publicité

Suivez-nous

Aidez-nous !


Loading…
Loading the web debug toolbar…
Attempt #