Chaines de caractères Flashcards
string addcslashes ( string $str , string $charlist )
Retourne la chaîne str, après avoir ajouté des antislashs devant tous les caractères qui sont présents dans la liste charlist.
string addslashes ( string $str )
Retourne la chaîne str, après avoir échappé tous les caractères qui doivent l’être, pour être utilisée. Ces caractères sont les guillemets simples (‘), guillemets doubles (“), antislash () et NULLE (le caractère NULL).
Un exemple d’utilisation d’addslashes() est lorsque vous entrez des données dans une chaîne de caractères à évaluer par PHP. Par exemple, pour insérer le nom O’Reilly dans la chaîne de caractères $str, vous aurez besoin de protéger $str. (i.e. eval(“echo ‘“.addslashes($str).”’;”); )
Pour échapper les paramètres de base de données, vous devez utiliser les fonctions d’échappement spécifiques à votre base de données (i.e. mysqli_real_escape_string() pour MySQL ou pg_escape_literal(), pg_escape_string() pour PostgreSQL) et ce, pour des raisons de sécurité. Les DBMs ont des spécifications d’échappement différents pour les identifiants (i.e. Nom de table, nom de champ) et pour les paramètres. Quelques DBMS, comme PostgreSQL, fournissent des fonctions d’échapement pour les identifiants, pg_escape_identifier(), mais ce n’est pas le cas pour tous les DBMS. Si c’est le cas, référez-vous au manuel système de votre base de données pour utiliser les bonnes méthodes d’échappement.
Si votre DBMS n’a pas de fonction d’échappement, et qu’elle utilise le caractère \ pour échapper les caractères spéciaux, vous pouvez utiliser cette fonction, mais uniquement si elle est adéquate pour votre base de données. Veuillez garder à l’esprit qu’utiliser la fonction addslashes() pour échapper les paramètres de base de données peut être une faille de sécurité pour la plupart des bases de données.
La directive PHP magic_quotes_gpc est à on par défaut avant PHP 5.4, et elle appelle addslashes() sur toutes les données GET, POST et COOKIE. N’utilisez pas addslashes() sur des données déjà protégées avec magic_quotes_gpc sinon vous doublerez les protections. La fonction get_magic_quotes_gpc() est utile pour vérifier ce paramètre.
string bin2hex ( string $str )
Retourne la chaîne str dont tous les caractères sont représentés par leur équivalent hexadécimal. La chaîne retournée est une chaîne ASCII. La conversion supporte les caractères binaires, et utilise les bits de poids forts en premier.
chop()
Cette fonction est un alias de : rtrim().
string chr ( int $ascii )
Retourne une chaîne d’un seul caractère, dont le code ASCII est donné par le paramètre ascii.
Cette fonction complète la fonction ord().
string chunk_split ( string $body [, int $chunklen = 76 [, string $end = “\r\n” ]] )
Scinde la chaîne body en segments de chunklen octets de longueur. Cette fonction est très pratique pour convertir les résultats de base64_encode() au format de la RFC 2045. Elle insère le paramètre end tous les chunklen caractères.
string convert_cyr_string ( string $str , string $from , string $to )
Convertit une chaîne d’un jeu de caractères cyrillique à l’autre.
string convert_uudecode ( string $data )
convert_uudecode() décode une chaîne au format uuencode.
string convert_uuencode ( string $data )
convert_uuencode() encode une chaîne de caractères en utilisant l’algorithme uuencode.
Uuencode traduit toutes les chaînes (y compris les binaires) en caractères imprimables, pour assurer leur transmission sur Internet. Les données au format uuencode sont environ 35 % plus grandes que les originales.
mixed count_chars ( string $string [, int $mode = 0 ] )
count_chars() compte le nombre d’occurrences de tous les octets présents dans la chaîne string et retourne différentes statistiques.
int crc32 ( string $str )
Génère la somme de contrôle cyclique CRC32, calculée sur 32 bits, et appliquée à la chaîne str. Cette fonction est généralement utilisée pour valider l’intégrité de données durant une transmission.
Avertissement
En raison du fait que le type entier de PHP est signé, la plupart des sommes de contrôle crc32 se trouve être des entiers négatifs sur les plateformes 32bits. Sur des installations 64bits, tous les résultats de la fonction crc32() seront des entiers positifs.
Aussi, vous devez utiliser le formatteur “%u” de la fonction sprintf() ou de la fonction printf() pour récupérer une représentation en chaîne de caractères de la somme de contrôle non-signée de la fonction crc32() au format décimal.
Pour une représentation hexadécimale de la somme de contrôle, vous pouvez utiliser soit le formatteur “%x” de la fonction sprintf() ou de la fonction printf() , ou bien les fonctions de conversion dechex(), les deux solutions prennent soin de convertir le résultat de la fonction crc32() en un entier non-signé.
Sur les installations 64bits, la fonction retournera aussi des entiers négatifs pour des valeurs retournées très grandes, mais cela va casser la conversion en héxadécimal en ayant une position 0xFFFFFFFF######## supplémentaire. Sachant que la représentation décimale semble être le cas le plus largement utilisé, nous avons décidé de ne pas la casser même si elle casse directement la comparaison décimale dans 50% des cas lors d’un passage de 32 à 64bits.
Avec du recul, le fait que la fonction retourne un entier n’était peut-être pas la meilleure idée, et le fait de retourner une représentation héxadécimale sous la forme d’une chaîne de caractères (tel que le fait la fonction md5()) aurait pû être une meilleure solution pour commencer.
Pour une solution plus pérenne, vous pouvez vous retourner vers la fonction générique hash(). hash(“crc32b”, $str) va retourner la même chaîne de caractères que dechex(crc32($str)).
string crypt ( string $str [, string $salt ] )
Retourne la chaîne str chiffrée avec l’algorithme standard Unix DES, ou bien un des algorithmes disponibles sur la machine.
Le paramètre salt est optionnel. Cependant, crypt() crée un mot de passe faible sans paramètre salt. PHP 5.6 et suivants lancent une alerte de niveau E_NOTICE sans ce paramètre. Assurez-vous de spécifier un salt assez solide pour une meilleure sécurité.
password_hash() utilise un hash fort, génère un salt fort, et applique le tout automatiquement. password_hash() est seulement un gestionnaire de crypt() et est compatible avec les mots de passe hachés existants. L’utilisation de la fonction password_hash() est fortement encouragée.
Certains systèmes supportent plus d’un type de hachage. En fait, il arrive que le chiffrement DES standard soit remplacé par un algorithme de chiffrement MD5. Le choix du type de hachage est effectué en se basant sur la valeur du salt. À l’installation, PHP détermine les possibilités de la fonction crypt(), et acceptera des salt pour d’autres types de chiffrements. Si aucun salt n’est fourni, PHP va en générer deux caractères (DES), à moins que le système par défaut soit MD5, auquel cas un salt compatible MD5 sera généré. PHP définit une constante appelée CRYPT_SALT_LENGTH permettant de vous indiquer la longueur du salt disponible pour le système de hachage utilisé.
crypt(), lorsqu’elle est utilisée avec le chiffrement standard DES, retourne le salt dans les deux premiers caractères de la chaîne retournée. Elle n’utilise que les 8 premiers caractères de str, ce qui fait que toutes les chaînes plus longues, qui ont les mêmes premiers 8 octets retourneront le même résultat (tant que le salt est toujours le même).
Sur les systèmes où crypt() supporte plusieurs types de hachages, les constantes suivantes sont mises à 0 ou 1, suivant que le type correspondant est disponible :
CRYPT_STD_DES : chiffrement DES standard à 2 caractères depuis la classe de caractères "./0-9A-Za-z". L'utilisation de caractères invalides dans le salt fera échouer la fonction crypt(). CRYPT_EXT_DES : Hachage DES étendu. Le "salt" sera une chaîne de 9 caractères composé d'un underscore, suivi de 4 octets du compteur d'itération puis 4 octets du "salt". Ces caractères seront encodés en tant que caractères imprimables, 6 octets par caractère, et dont le premier caractère au moins sera significatif. Les valeurs de 0 à 63 seront encodés comme "./0-9A-Za-z". L'utilisation de caractères invalides dans le salt fera échouer la fonction crypt(). CRYPT_MD5 : hachage MD5 à 12 caractères commençant par $1$ CRYPT_BLOWFISH : hachage Blowfish dont le salt est composé comme ceci ; "$2a$", "$2x$" or "$2y$", un paramètre à 2 chiffres, $, et 22 caractères depuis l'alphabet "./0-9A-Za-z". L'utilisation de caractères en dehors de cette classe dans le salt fera que la fonction crypt() retournera une chaîne vide (de longueur 0). Le paramètre à 2 chiffres est le logarithme base-2 du compteur d'itération pour l'algorithme de hachage basé sur Blowfish sous jacent et doivent être dans l'intervalle 04-31. De la même façon, si vous utilisez une valeur en dehors de cet intervalle, la fonction crypt() échouera. Les versions de PHP antérieures à la version 5.3.7 ne supportent que "$2a$" comme préfixe salt : PHP 5.3.7 a introduit deux nouveaux préfixes pour résoudre une faille de sécurité dans l'implémentation de Blowfish. Référez-vous à » ce document pour la totalité des détails de la correction de cette faille, mais pour résumer, les développeurs prévoient uniquement l'utilisation de "$2y$" à la place de "$2a$" pour les versions supérieures à 5.3.7 de PHP. CRYPT_SHA256 - Hachage SHA-256 dont le salt est composé de 16 caractères préfixé par $5$. Si le salt commence par 'rounds=$', la valeur numérique de N sera utilisée pour indiquer le nombre de fois que la boucle de hachage doit être exécutée, un peu comme le paramètre dans l'algorithme Blowfish. La valeur par défaut de rounds est de 5000, le minimum pouvant être de 1000 et le maximum, de 999,999,999. Tout autre sélection de N en dehors de cet intervalle sera tronqué à la plus proche des 2 limites. CRYPT_SHA512 - Hachage SHA-512 dont le salt est composé de 16 caractères préfixé par $6$. Si le salt commence par 'rounds=$', la valeur numérique de N sera utilisée pour indiquer le nombre de fois que la boucle de hachage doit être exécutée, un peu comme le paramètre dans l'algorithme Blowfish. La valeur par défaut de rounds est de 5000, le minimum pouvant être de 1000 et le maximum, de 999,999,999. Tout autre sélection de N en dehors de cet intervalle sera tronqué à la plus proche des 2 limites. Note: Depuis PHP 5.3.0, PHP dispose de sa propre implémentation, et l'utilisera si le système ne dispose pas de fonction crypt, ou de certains algorithmes.
void echo ( string $arg1 [, string $… ] )
Affiche tous les paramètres.
echo n’est pas vraiment une fonction (c’est techniquement une structure du langage), cela fait que vous n’êtes pas obligé d’utiliser des parenthèses. echo (contrairement à d’autres structures de langage) ne se comporte pas comme une fonction, il ne peut donc pas être utilisé dans le contexte d’une fonction. De même, si vous voulez passer plusieurs paramètres à echo, les paramètres ne doivent pas être entourés de parenthèses.
echo dispose aussi d’une version courte, où vous pouvez faire suivre la balise PHP ouvrante d’un signe égal (=). Avant PHP 5.4.0, cette syntaxe n’était possible que si la directive de configuration short_open_tag était activée.
array explode ( string $delimiter , string $string [, int $limit ] )
explode() retourne un tableau de chaînes, chacune d’elle étant une sous-chaîne du paramètre string extraite en utilisant le séparateur delimiter.
int fprintf ( resource $handle , string $format [, mixed $args [, mixed $… ]] )
Écrit la chaîne produite avec le format format dans le flux représenté par handle.
array get_html_translation_table ([ int $table = HTML_SPECIALCHARS [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = “UTF-8” ]]] )
get_html_translation_table() retourne la table de traduction des entités utilisée en interne par les fonctions htmlspecialchars() et htmlentities().
Note: Les caractères spéciaux peuvent être encodés de différentes façon. E.g. " peut être encodé comme ", " ou ". get_html_translation_table() retourne uniquement la forme utilisée par htmlspecialchars() et htmlentities().
string hebrev ( string $hebrew_text [, int $max_chars_per_line = 0 ] )
Convertit un texte logique hébreux en texte visuel.
La fonction tente d’éviter la césure des mots.
string hebrevc ( string $hebrew_text [, int $max_chars_per_line = 0 ] )
hebrevc() est similaire à hebrev() à la différence qu’elle convertit les nouvelles lignes (\n) en “<br></br>\n”.
La fonction tente d’éviter la césure des mots.
string hex2bin ( string $data )
Convertit une chaîne binaire encodée en hexadécimal.
Attention
Cette fonction ne convertit PAS un nombre hexadécimal en un nombre binaire. Cela peut être réalisé en utilisant la fonction base_convert().
string html_entity_decode ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get(“default_charset”) ]] )
html_entity_decode() est la fonction contraire de htmlentities() : elle convertit les entités HTML de la chaîne string en caractères applicables.
De façon plus explicite, cette fonction décode toutes les entités (incluant les entités numériques) qui 1) sont nécessairement valides pour le type de document choisi - i.e., pour XML, cette fonction ne décode pas les entités nommées qui peuvent être définies dans une DTD - et 2) et dont le caractère ou les caractères sont dans le jeu de caractères codé avec l’encodage choisi et sont autorisés dans le type de document choisi. Toutes les autres entités sont laissées telle que.
string htmlentities ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get(“default_charset”) [, bool $double_encode = true ]]] )
htmlentities() est identique à la fonction htmlspecialchars(), sauf que tous les caractères qui ont des équivalents en entités HTML sont effectivement traduits.
Si vous voulez réaliser l’opération inverse, vous devez utiliser la fonction html_entity_decode().
string htmlspecialchars_decode ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 ] )
Cette fonction est l’opposée de htmlspecialchars(). Elle convertit les entités HTML spéciales en caractères.
Les entités converties sont : &, " (lorsque ENT_NOQUOTES n’est pas activée), ' (lorsque ENT_QUOTES est activée), < et >.
string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get(“default_charset”) [, bool $double_encode = true ]]] )
Certains caractères ont des significations spéciales en HTML, et doivent être remplacés par des entités HTML pour conserver leurs significations. Cette fonction retourne une chaîne de caractères avec ces modifications. Si vous avez besoin que toutes les sous-chaînes en entrée qui sont associées à des entités nommées soient transformées, utilisez la fonction htmlentities().
Si la chaîne en entrée passée à cette fonction et le document final partagent le même jeu de caractères, cette fonction est suffisante pour préparer l’entrée pour une inclusion dans la plupart des contextes d’un document HTML. Si cependant, l’entrée peut présenter des caractères qui ne sont pas codés dans le jeu de caractères du document final, et que vous souhaitez épargner ces caractères (comme des numériques ou des entités nommés), cette fonction et la fonction htmlentities() (qui n’encodes que les sous-chaînes qui ont des entités nommés équivalentes) ne sont pas suffisantes. Vous devez utiliser la fonction mb_encode_numericentity() à la place.
Les remplacements effectués sont :
"&" (et commercial) devient "&" """ (guillemets doubles) devient """ (ou ') lorsque ENT_NOQUOTES n'est pas utilisée. "'" (guillemet simple) devient ' uniquement lorsque ENT_QUOTES est utilisée. "" (supérieur à) devient ">"
string implode ( string $glue , array $pieces )
Rassemble les éléments d’un tableau en une chaîne.
Note: implode() peut, pour des raisons historiques, accepter les paramètres dans un sens ou dans l'autre. Pour des raisons de cohérence avec explode(), toutefois, il est préférable d'utiliser l'ordre des arguments tels que documenté.
join
Cette fonction est un alias de : implode().
string lcfirst ( string $str )
Retourne une chaîne dont le premier caractère de str a été mis en minuscule, si ce caractère est un caractère alphabétique.
Notez que ‘alphabétique’ est déterminé par la locale courante. Actuellement, dans la locale par défaut “C”, les caractères comme a-umlaut (ä) ne seront pas convertis.
int levenshtein ( string $str1 , string $str2 , int $cost_ins , int $cost_rep , int $cost_del )
La distance Levenshtein est définie comme le nombre minimal de caractères qu’il faut remplacer, insérer ou supprimer pour transformer la chaîne str1 en str2. La complexité de l’algorithme est en O(m*n), où n et m sont les tailles respectives de str1 et str2 : c’est plutôt bien, en comparaison de similar_text(), qui est en O(max(n,m)**3), mais cela reste très coûteux.
Dans sa forme la plus simple, levenshtein() va prendre uniquement deux chaînes de caractères comme paramètres, et calculer simplement le nombre d’insertions, de remplacements et d’effacements nécessaires pour transformer str1 en str2.
La deuxième variante de la fonction prend trois paramètres supplémentaires qui représentent les coûts d’insertions, de remplacements et d’effacements. C’est une version plus générale de la première fonction, mais qui est un peu moins efficace.
array localeconv ( void )
Retourne un tableau associatif contenant les informations de formats localisées pour les nombres et la monnaie.
string ltrim ( string $str [, string $character_mask ] )
Supprime les espaces (ou d’autres caractères) de début de chaîne.
string md5_file ( string $filename [, bool $raw_output = false ] )
md5_file() calcule le MD5 du fichier filename en utilisant l’algorithme » RSA Data Security, Inc. MD5 Message-Digest Algorithm, puis retourne la valeur ainsi calculée. Le résultat est un nombre de 32 caractères hexadécimaux.
string md5 ( string $str [, bool $raw_output = false ] )
Calcule le MD5 de la chaîne de caractères str en utilisant l’algorithme » RSA Data Security, Inc. MD5 Message-Digest Algorithm, et retourne le résultat.
string metaphone ( string $str [, int $phonemes = 0 ] )
Calcule la clé metaphone de str.
metaphone() est similaire à la fonction soundex() : elle créée une clé similaire pour des mots dont la prononciation est proche. C’est une fonction qui est plus précise que soundex() car elle prend en compte la prononciation anglaise. La clé metaphone générée est de taille variable.
Metaphone a été développée par Lawrence Philips . Cette méthode est décrite dans le livre [“Practical Algorithms for Programmers”, Binstock & Rex, Addison Wesley, 1995].
string money_format ( string $format , float $number )
money_format() retourne une version formatée du nombre number. Cette fonction fait l’interface avec la fonction strfmon() de la bibliothèque C, à la différence près que cette implémentation ne convertit qu’un nombre à la fois.
string nl_langinfo ( int $item )
nl_langinfo() est utilisée pour accéder à chaque élément de la configuration locale. Contrairement à la fonction localeconv() qui renvoie tous les éléments, nl_langinfo() vous permet de sélectionner un élément précis.
string nl2br ( string $string [, bool $is_xhtml = true ] )
Retourne string après avoir inséré “<br></br>” ou ‘<br></br>’ devant toutes les nouvelles lignes (\r\n, \n\r, \n et \r).
string number_format ( float $number , int $decimals = 0 , string $dec_point = “.” , string $thousands_sep = “,” )
Cette fonction accepte un, deux, ou quatre paramètres (et pas trois) :
Si seul le paramètre number est donné, il sera formaté sans partie décimale, mais avec une virgule entre chaque millier.
Si les deux paramètres number et decimals sont fournis, number sera formaté avec decimals décimales, un point (“.”) comme séparateur décimal et une virgule entre chaque millier.
Avec quatre paramètres, number sera formaté avec decimals décimales, dec_point comme séparateur décimal, et thousands_sep comme séparateur de milliers.
int ord ( string $string )
Retourne le code ASCII du premier caractère de string.
Cette fonction est le contraire de chr().
void parse_str ( string $str [, array &$arr ] )
Analyse la chaîne de caractères str comme s’il s’agissait des paramètres passés via l’URL. Toutes les variables qu’elle y repère sont alors créées, avec leurs valeurs respectives.
Note: Pour accéder à l'URL appelante QUERY_STRING, vous devez utiliser la variable $_SERVER['QUERY_STRING']. Il est aussi intéressant de lire la section sur les variables de sources externes. Note: La configuration de magic_quotes_gpc affecte l'affichage de cette fonction car parse_str() utilise le même mécanisme que PHP utilise pour propager les variables $_GET, $_POST, etc.
int print ( string $arg )
Affiche le paramètre arg.
print n’est pas vraiment une fonction (c’est techniquement une structure de langage). Cela fait que vous n’êtes pas obligé d’utiliser des parenthèses.