wlib / utils
数组、字符串、文件、调试等辅助函数
v1.3.2
2024-02-25 10:56 UTC
Requires
- php: >=7.1.0
Requires (Dev)
- pestphp/pest: ^2.8
README
PHP实用函数。
安装
composer require wlib/utils
可用的简化工具
数组
通用函数
// Vérifier la présence d'une clé dans un tableau ou une instance de ArrayAccess function isArrayKey(array|ArrayAccess $aArray, int|string $mKey): bool; // Accéder à une valeur dans un tableau ou retourner une valeur par défaut function arrayValue(array|ArrayAccess &$aArray, int|string $mKey, mixed $mDefault = null): mixed; // Etendre un tableau à la façon jQuery.extend() function arrayExtend(array &$aTarget, array ...$aArrays): void;
通用访问器
function access(array &$aArray, string|array $mName = '', mixed $mDefault = null): mixed; function unaccess(array &$aCursor, string|int ...$mKey): void;
access()
和 unaccess()
是通用访问器,允许以简化的方式在多维数组中读取、写入和删除元素。
它们尤其可以节省在访问之前不断检查键的存在性的控制。
// Accès basique access($array, 'keyname'); access($array, 'keyname', 'default value if keyname is not set'); // Accès multidimentionnel access($array, 'level1.level2.level3'); // Similaire à $array['level1']['level2']['level3']...sans avoir besoin de vérifier l'existence de chaque dimension // Ecrire un élément (ajout ou mise à jour) access($array, ['keyname' => 'keyvalue']); // Ecrire plusieurs éléments access($array, [ 'key1' => 'value1', // Similaire à $array['key1'] = 'value1'; 'key2' => 'value2', 'a.b.c' => 'value3' // Similaire à $array['a']['b']['c'] = 'value3'; ]); // Retirer des éléments unaccess($array, 'key1'); // Similaire à unset($array['key1']) unaccess($array, 'a.b.c'); // Similaire à unset($array['a']['b']['c']); unaccess($array, 'key2', 'key3', 'a.b.c'); // Similaire à unset($array['key2'], $array['key3'], $array['a']['b']['c']);
访问超全局变量
现在您已经了解了 access()
和 unaccess()
,您可以以相同的方式访问 PHP 的超全局变量
// Encapsulation d'access() function globals(string|array $mName = '', mixed $mDefault = null): mixed; function server(string|array $mName = '', mixed $mDefault = null): mixed; function get(string|array $mName = '', mixed $mDefault = null): mixed; function post(string|array $mName = '', mixed $mDefault = null): mixed; function files(string|array $mName = '', mixed $mDefault = null): mixed; function cookie(string $sName = '', mixed $mDefault = null): mixed; function session(string|array $mName = '', mixed $mDefault = null): mixed; function request(string|array $mName = '', mixed $mDefault = null): mixed; function env(string|array $mName = '', mixed $mDefault = null): mixed; // Encapsulations d'unaccess() function unglobals(string|int $mKey): void; function unserver(string|int $mKey): void; function unget(string|int $mKey): void; function unpost(string|int $mKey): void; function unfiles(string|int $mKey): void; function uncookie(string|int $mKey): void; function unsession(string|int $mKey): void; function unrequest(string|int $mKey): void; function unenv(string|int $mKey): void;
config()
function config(string $sName = '', mixed $mDefault = null): mixed;
这个函数也得益于 access()
提供的小甜头,是一个工具,可以用来组织包含例如您的应用程序配置值的数组
// Prérequis, définir le(s) dossier(s) où vont se trouver des fichiers de configuration $_CONFIG['__include_paths'] = __DIR__.'/cfg'; // Fichier __DIR__.'/cfg/app.php' return [ 'title' => 'My awesome app', 'locale' => [ 'timezone' => 'Europe/Paris' ] ] // Le premier terme de $sName correspond au nom du fichier auquel accéder echo config('app.title', 'Define your title app'); // > My awesome app date_default_timezone_set(config('app.locale.timezone'));
调试
// Dumper les arguments donnés et continuer l'exécution function vd(...$var): void; // Dumper les arguments donnés et arrêter l'exécution function vdd(...$var): void;
文件
// Créer le dossier à l'adresse donnée s'il n'existe pas déjà function ckdir($sDirName, $iMode = 0644): bool;
字符串
// Vérifier si la chaîne donnée est au format UTF-8 function isUTF8($sString): bool; // Retirer les accents de la chaîne donnée function removeAccents($sString): string;
这两个函数来自 WordPress 的基础代码库!
加密
// Générer un mot de passe aléatoire de la longueur donnée function makePassword(int $iLen): string; // Générer une clé privée de la longueur attendue par l'algorythme donné function makePrivateKey(string $sCipher = 'aes-256-ctr'): string; // Crypter une chaîne function encrypt(string $sData, string $sPrivateKey, string $sCipher = 'aes-256-ctr'): string; // Décrypter une chaine function decrypt(string $sData, string $sPrivateKey, string $sCipher = 'aes-256-ctr'): string;
示例
$key = makePrivateKey(); $data = 'Some content to protect'; $enc = encrypt($data, $key); if (decrypt($enc, $key) == $data) echo 'All is under control !';