Accueil
Trouver le type d’une variable (PHP)
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
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
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
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
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
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
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"
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 ...
Fonction pour supprimer les caractères spéciaux en PHP
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
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++
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 :
Dans la fenêtre qui s’ouvre cliquez sur le bouton « Import » puis importer le fichier xml précédemment téléchargé :
Une fois cette étape terminée, la coloration syntaxique devrait être disponible sous Notepad++.
Lire ...Rechercher
Tags
Articles récents
- Quel est le but de l'attribut "role" en HTML ?
- Changer la couleur de l'espace réservé (placeholder)
- Attention à cet email d’arnaque !
- Supprimer un fichier d'un référentiel Git sans le supprimer du système de fichiers local
- JS - Récupérer le dernier élément d'un tableau
- JS - Prévisualiser une image avec son upload
- PHP - Convertir une chaîne de caractères en un booléen
- PHP : Vérifier si une session a déjà été démarrée
- Créer un APK ou un AAB en ligne de commandes
- L'opérateur !! en Javascript