En PHP
qu'est-ce que cela signifie par une fonction étant binary-safe
?
Qu'est-ce qui les rend spéciaux et où sont-ils généralement utilisés?
En PHP
qu'est-ce que cela signifie par une fonction étant binary-safe
?
Qu'est-ce qui les rend spéciaux et où sont-ils généralement utilisés?
Cela signifie que la fonction fonctionnera correctement lorsque vous lui passerez des données binaires arbitraires (c'est-à-dire des chaînes contenant des octets non-ASCII et / ou des octets nuls).
Par exemple, une fonction non binaire-sûre peut être basée sur une fonction C qui attend des chaînes terminées par un caractère nul. Ainsi, si la chaîne contient un caractère nul, la fonction ignorera tout ce qui le suit.
Ceci est pertinent car PHP ne sépare pas proprement les chaînes et les données binaires.
Les autres utilisateurs déjà mentionné ce que "binaire sûr" signifie en général.
En PHP, le sens est plus spécifiques, se référant seulement à ce que Michael donne comme exemple.
Toutes les chaînes de caractères en PHP ont une longueur associés, qui sont le nombre d'octets qui le composent. Lorsqu'une fonction manipule une chaîne de caractères, il peut soit:
Il est également vrai que toutes les chaînes de caractères en PHP les variables manipulées par le moteur sont aussi nul terminée. Le problème avec les fonctions qui dépendent de 2. c'est que, si la chaîne contient un octet dont la valeur 0
, la fonction que de la manipulation, il pense que la chaîne a pris fin à ce point ignorer tout ce qui suit.
Par exemple, si PHP strlen
fonction travaillé comme bibliothèque standard C strlen
, le résultat serait une erreur:
$str = "abc\x00abc";
echo strlen($str); //gives 7, not 3!
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.