Une bibliothèque de manipulation de chaînes PHP avec prise en charge multi-octets. Compatible avec PHP 5.4+, PHP 7+ et HHVM.
s('string')->toTitleCase()->ensureRight('y') == 'Stringy'
Reportez-vous à la branche 1.x ou à la branche 2.x pour une documentation plus ancienne.
Pourquoi?
Installation
OO et chaînage
Interfaces implémentées
Création PHP 5.6
StatiqueStringy
Méthodes de classe
créer
Méthodes d'instance
ajouter | à | entre | caméliser |
caractères | réduireEspaces blancs | contient | contientTout |
contientAny | countSubstr | dashériser | délimiter |
se termine par | se termine parAny | assurerGauche | garantir le droit |
d'abord | getEncoding | hasLowerCase | hasUpperCase |
htmlDécoder | htmlEncode | humaniser | indexDe |
indexDeDernier | insérer | estAlpha | estAlphanumérique |
estBase64 | est vide | estHexadécimal | estJson |
estMinuscule | estSérialisé | estUpperCase | dernier |
longueur | lignes | le plus longCommonPrefix | le plus longSuffixeCommon |
la plus longue sous-chaîne commune | minusculePremier | tampon | tamponLes deux |
padGauche | tamponDroit | ajouter un préfixe | regexRemplacer |
supprimerGauche | supprimerDroite | répéter | remplacer |
inverse | coffre-fortTronqué | mélanger | slugifier |
tranche | diviser | commenceAvec | commenceAvecAny |
stripWhitespace | sous-titre | entourer | swapCase |
rangé | titrer | versAscii | versBooléen |
en minuscules | versEspaces | vers les onglets | versTitleCase |
en majuscule | garniture | couperGauche | couperDroite |
tronquer | souligné | supérieurCamelize | majusculePremier |
Rallonges
Essais
Licence
En partie à cause du manque de prise en charge multi-octets (y compris UTF-8) dans de nombreuses fonctions de chaîne standard de PHP. Mais aussi de proposer un wrapper OO autour des fonctions compatibles multi-octets du module mbstring
. Stringy gère certaines bizarreries, fournit des fonctionnalités supplémentaires et, espérons-le, rend les chaînes un peu plus faciles à utiliser !
// Bibliothèque standardstrtoupper('fòôbàř'); // 'FòôBàř'strlen('fòôbàř'); // 10// mbstringmb_strtoupper('fòôbàř'); // 'FÒÔBÀŘ'mb_strlen('fòôbàř'); // '6'// Stringys('fòôbàř')->toUpperCase(); // 'FÒÔBÀŘ's('fòôbàř')->length(); // '6'
Si vous utilisez Composer pour gérer les dépendances, vous pouvez inclure les éléments suivants dans votre fichier composer.json :
"require": {"danielstjules/stringy": "~3.1.0"}
Ensuite, après avoir exécuté composer update
ou php composer.phar update
, vous pouvez charger la classe en utilisant le chargement automatique de Composer :
nécessite 'vendor/autoload.php' ;
Sinon, vous pouvez simplement demander directement le fichier :
require_once 'chemin/vers/Stringy/src/Stringy.php';
Et dans les deux cas, je suggère d’utiliser un alias.
utilisez StringyStringy comme S ;
Veuillez noter que Stringy s'appuie sur le module mbstring
pour sa prise en charge multi-octets sous-jacente. Si le module n'est pas trouvé, Stringy utilisera symfony/polyfill-mbstring. ex-mbstring est un module autre que celui par défaut, mais très courant. Par exemple, avec Debian et Ubuntu, il est inclus dans libapache2-mod-php5, php5-cli et php5-fpm. Pour les utilisateurs d'OSX, il s'agit d'une valeur par défaut pour toute version de PHP installée avec homebrew. Si vous compilez PHP à partir de zéro, il peut être inclus avec l'indicateur --enable-mbstring
.
La bibliothèque propose le chaînage de méthodes OO, comme indiqué ci-dessous :
utilisez StringyStringy comme S;echo S::create('fòô bàř')->collapseWhitespace()->swapCase(); // 'FÒÔ BÀŘ'
StringyStringy
a une méthode __toString(), qui renvoie la chaîne actuelle lorsque l'objet est utilisé dans un contexte de chaîne, c'est-à-dire : (string) S::create('foo') // 'foo'
StringyStringy
implémente l'interface IteratorAggregate
, ce qui signifie que foreach
peut être utilisé avec une instance de la classe :
$stringy = S::create('fòôbàř');foreach ($stringy as $char) {echo $char; }// 'fòôbàř'
Il implémente l'interface Countable
, permettant d'utiliser count()
pour récupérer le nombre de caractères dans la chaîne :
$stringy = S::create('fòô');count($stringy); // 3
De plus, l'interface ArrayAccess
a été implémentée. En conséquence, isset()
peut être utilisé pour vérifier si un caractère à un index spécifique existe. Et comme StringyStringy
est immuable, tout appel à offsetSet
ou offsetUnset
lèvera une exception. offsetGet
a cependant été implémenté et accepte les index positifs et négatifs. Les index non valides entraînent une OutOfBoundsException
.
$stringy = S::create('bàř');echo $stringy[2]; // 'ř'echo $stringy[-2]; // 'à'isset($stringy[-4]); // faux$stringy[3]; // OutOfBoundsException$stringy[2] = 'a'; // Exception
Depuis PHP 5.6, use function
est disponible pour importer des fonctions. Stringy expose une fonction avec espace de noms, Stringycreate
, qui émet le même comportement que StringyStringy::create()
. Si vous exécutez PHP 5.6 ou un autre environnement d'exécution prenant en charge la syntaxe use function
, vous pouvez profiter d'une API encore plus simple, comme indiqué ci-dessous :
utilisez la fonction Stringycreate comme s;// Au lieu de : S::create('fòô bàř')s('fòô bàř')->collapseWhitespace()->swapCase();
Toutes les méthodes répertoriées sous « Méthodes d’instance » sont disponibles dans le cadre d’un wrapper statique. Pour les méthodes StaticStringy, l’encodage facultatif devrait être le dernier argument. La valeur de retour n'est pas convertie et peut donc être de type Stringy, entier, booléen, etc.
utiliser StringyStaticStringy comme S;// Se traduit par Stringy::create('fòôbàř')->slice(0, 3);// Renvoie un objet Stringy avec la chaîne "fòô"S::slice('fòôbàř', 0, 3);
Crée un objet Stringy et attribue aux propriétés str et encoding les valeurs fournies. $str est converti en chaîne avant l'affectation, et si $encoding n'est pas spécifié, sa valeur par défaut est mb_internal_encoding(). Il renvoie ensuite l'objet initialisé. Lève une InvalidArgumentException si le premier argument est un tableau ou un objet sans méthode __toString.
$stringy = S::create('fòôbàř'); // 'fòôbàř'
Les objets filandreux sont immuables. Tous les exemples ci-dessous utilisent l'importation de fonctions PHP 5.6 et la syntaxe de tableau court PHP 5.4. Ils supposent également que le codage renvoyé par mb_internal_encoding() est UTF-8. Pour plus de détails, consultez la documentation de la méthode create ci-dessus, ainsi que les notes sur la création PHP 5.6.
Renvoie une nouvelle chaîne avec $string ajouté.
s('fòô')->append('bàř'); // 'fòôbàř'
Renvoie le caractère à $index, avec les index commençant à 0.
s('fòôbàř')->at(3); // 'b'
Renvoie la sous-chaîne entre $start et $end, si elle est trouvée, ou une chaîne vide. Un décalage facultatif peut être fourni à partir duquel commencer la recherche de la chaîne de début.
s('{foo} et {bar}')->entre('{', '}'); // 'foo'
Renvoie une version camelCase de la chaîne. Coupe les espaces environnants, met en majuscule les lettres qui suivent les chiffres, les espaces, les tirets et les traits de soulignement, et supprime les espaces, les tirets ainsi que les traits de soulignement.
s('Camel-Case')->camelize(); // 'camelCase'
Renvoie un tableau composé des caractères de la chaîne.
s('fòôbàř')->chars(); // ['f', 'ò', 'ô', 'b', 'à', 'ř']
Coupe la chaîne et remplace les caractères d'espacement consécutifs par un seul espace. Cela inclut les tabulations et les caractères de nouvelle ligne, ainsi que les espaces multioctets tels que l'espace fin et l'espace idéographique.
s(' Ο συγγραφέας ')->collapseWhitespace(); // 'Ο συγγραφέας'
Renvoie vrai si la chaîne contient $needle, faux sinon. Par défaut, la comparaison est sensible à la casse, mais peut être rendue insensible en définissant $caseSensitive sur false.
s('Ο συγγραφέας είπε') ->contains('συγγραφέας'); // vrai
Renvoie vrai si la chaîne contient tous les $needles, faux sinon. Par défaut, la comparaison est sensible à la casse, mais peut être rendue insensible en définissant $caseSensitive sur false.
s('foo & bar')->containsAll(['foo', 'bar']); // vrai
Renvoie vrai si la chaîne contient des $needles, faux sinon. Par défaut, la comparaison est sensible à la casse, mais peut être rendue insensible en définissant $caseSensitive sur false.
s('str contient foo')->containsAny(['foo', 'bar']); // vrai
Renvoie le nombre d'occurrences de $substring dans la chaîne donnée. Par défaut, la comparaison est sensible à la casse, mais peut être rendue insensible en définissant $caseSensitive sur false.
s('Ο συγγραφέας είπε') ->countSubstr('α'); // 2
Renvoie une chaîne minuscule et tronquée séparée par des tirets. Des tirets sont insérés avant les caractères majuscules (à l'exception du premier caractère de la chaîne), et à la place des espaces ainsi que des traits de soulignement.
s('fooBar')->dasherize(); // 'foo-bar'
Renvoie une chaîne minuscule et tronquée séparée par le délimiteur donné. Les délimiteurs sont insérés avant les caractères majuscules (à l'exception du premier caractère de la chaîne) et à la place des espaces, tirets et traits de soulignement. Les délimiteurs alpha ne sont pas convertis en minuscules.
s('fooBar')->delimit('::'); // 'foo::bar'
Renvoie vrai si la chaîne se termine par $substring, faux sinon. Par défaut, la comparaison est sensible à la casse, mais peut être rendue insensible en définissant $caseSensitive sur false.
s('fòôbàř')->endsWith('bàř'); // vrai
Renvoie vrai si la chaîne se termine par l'une des sous-chaînes $, sinon faux. Par défaut, la comparaison est sensible à la casse, mais peut être rendue insensible en définissant $caseSensitive sur false.
s('fòôbàř')->endsWithAny(['bàř', 'baz']); // vrai
Garantit que la chaîne commence par $substring. Si ce n'est pas le cas, c'est ajouté au début.
s('foobar')->ensureLeft('http://'); // 'http://foobar'
Garantit que la chaîne se termine par $substring. Si ce n'est pas le cas, il est ajouté.
s('foobar')->ensureRight('.com'); // 'foobar.com'
Renvoie les n premiers caractères $ de la chaîne.
s('fòôbàř')->first(3); // 'fòô'
Renvoie l'encodage utilisé par l'objet Stringy.
s('fòôbàř')->getEncoding(); // 'UTF-8'
Renvoie vrai si la chaîne contient un caractère minuscule, faux sinon.
s('fòôbàř')->hasLowerCase(); // vrai
Renvoie vrai si la chaîne contient un caractère majuscule, faux sinon.
s('fòôbàř')->hasUpperCase(); // FAUX
Convertissez toutes les entités HTML en leurs caractères applicables. Un alias de html_entity_decode. Pour une liste des indicateurs, reportez-vous à http://php.net/manual/en/function.html-entity-decode.php
s('&')->htmlDecode(); // '&'
Convertissez tous les caractères applicables en entités HTML. Un alias de htmlentities. Reportez-vous à http://php.net/manual/en/function.htmlentities.php pour une liste des indicateurs.
s('&')->htmlEncode(); // '&'
Met en majuscule le premier mot de la chaîne, remplace les traits de soulignement par des espaces et supprime '_id'.
s('author_id')->humanize(); // 'Auteur'
Renvoie l'index de la première occurrence de $needle dans la chaîne, et false s'il n'est pas trouvé. Accepte un décalage facultatif à partir duquel commencer la recherche. Un index négatif recherche depuis la fin
s('string')->indexOf('ing'); // 3
Renvoie l'index de la dernière occurrence de $needle dans la chaîne, et false s'il n'est pas trouvé. Accepte un décalage facultatif à partir duquel commencer la recherche. Les décalages peuvent être négatifs à compter du dernier caractère de la chaîne.
s('foobarfoo')->indexOfLast('foo'); // 10
Insère $substring dans la chaîne au $index fourni.
s('fòôbř')->insert('à', 4); // 'fòôbàř'
Renvoie vrai si la chaîne ne contient que des caractères alphabétiques, faux sinon.
s('丹尼爾')->isAlpha(); // vrai
Renvoie vrai si la chaîne contient uniquement des caractères alphabétiques et numériques, sinon faux.
s('دانيال1')->isAlphanumeric(); // vrai
Renvoie vrai si la chaîne est codée en base64, faux sinon.
s('Zm9vYmFy')->isBase64(); // vrai
Renvoie vrai si la chaîne ne contient que des espaces, faux sinon.
s("nt vf") ->isBlank(); // vrai
Renvoie vrai si la chaîne ne contient que des caractères hexadécimaux, faux sinon.
s('A102F')->isHexadecimal(); // vrai
Renvoie vrai si la chaîne est JSON, faux sinon. Contrairement à json_decode dans PHP 5.x, cette méthode est cohérente avec PHP 7 et d'autres analyseurs JSON, dans la mesure où une chaîne vide n'est pas considérée comme un JSON valide.
s('{"foo":"bar"}')->isJson(); // vrai
Renvoie vrai si la chaîne ne contient que des caractères minuscules, faux sinon.
s('fòôbàř')->isLowerCase(); // vrai
Renvoie vrai si la chaîne est sérialisée, faux sinon.
s('a:1:{s:3:"foo";s:3:"bar";}')->isSerialized(); // vrai
Renvoie vrai si la chaîne ne contient que des caractères majuscules, faux sinon.
s('FÒÔBÀŘ')->isUpperCase(); // vrai
Renvoie les n derniers caractères $ de la chaîne.
s('fòôbàř')->last(3); // 'bar'
Renvoie la longueur de la chaîne. Un alias pour la fonction mb_strlen() de PHP.
s('fòôbàř')->length(); // 6
Divise les nouvelles lignes et les retours chariot, renvoyant un tableau d'objets Stringy correspondant aux lignes de la chaîne.
s("fòôrnbàřn") ->lines(); // ['fòô', 'bàř', '']
Renvoie le préfixe commun le plus long entre la chaîne et $otherStr.
s('foobar')->longestCommonPrefix('foobar'); // 'fooba'
Renvoie le suffixe commun le plus long entre la chaîne et $otherStr.
s('fòôbàř') ->longestCommonSuffix('fòôbàř'); // 'bar'
Renvoie la sous-chaîne commune la plus longue entre la chaîne et $otherStr. En cas d'égalité, il renvoie ce qui se produit en premier.
s('foobar')->longestCommonSubstring('boofar'); // 'oo'
Convertit le premier caractère de la chaîne fournie en minuscules.
s('Σ foo')->lowerCaseFirst(); // 'σ foo'
Remplit la chaîne à une longueur donnée avec $padStr. Si la longueur est inférieure ou égale à la longueur de la chaîne, aucun remplissage n'a lieu. La chaîne par défaut utilisée pour le remplissage est un espace, et le type par défaut (l'un des « gauche », « droite », « les deux ») est « droite ». Lève une InvalidArgumentException si $padType ne fait pas partie de ces 3 valeurs.
s('fòôbàř')->pad(9, '-/', 'gauche'); // '-/-fòôbàř'
Renvoie une nouvelle chaîne d'une longueur donnée telle que les deux côtés de la chaîne sont remplis. Alias pour pad() avec un $padType de 'both'.
s('foo bar')->padBoth(9, ' '); // 'foobar'
Renvoie une nouvelle chaîne d'une longueur donnée telle que le début de la chaîne soit complété. Alias pour pad() avec un $padType de 'left'.
s('foo bar')->padLeft(9, ' '); // 'foobar'
Renvoie une nouvelle chaîne d'une longueur donnée telle que la fin de la chaîne soit complétée. Alias pour pad() avec un $padType de 'right'.
s('foo bar')->padRight(10, '_*'); // 'foo bar_*_'
Renvoie une nouvelle chaîne commençant par $string.
s('bàř')->prepend('fòô'); // 'fòôbàř'
Remplace toutes les occurrences de $pattern dans $str par $replacement. Un alias pour mb_ereg_replace(). Notez que l'option 'i' avec des modèles multi-octets dans mb_ereg_replace() nécessite PHP 5.6+ pour des résultats corrects. Cela est dû à un manque de support dans la version fournie d'Oniguruma en PHP < 5.6 et dans les versions actuelles de HHVM (3.8 et inférieures).
s('fòô ')->regexReplace('f[òô]+s', 'bàř'); // 'bàř's('fò')->regexReplace('(ò)', '1ô'); // 'fòô'
Renvoie une nouvelle chaîne avec le préfixe $substring supprimé, s'il est présent.
s('fòôbàř')->removeLeft('fòô'); // 'bar'
Renvoie une nouvelle chaîne avec le suffixe $substring supprimé, s'il est présent.
s('fòôbàř')->removeRight('bàř'); // 'fòô'
Renvoie une chaîne répétée avec un multiplicateur. Un alias pour str_repeat.
s('α')->répéter(3); // 'ααα'
Remplace toutes les occurrences de $search dans $str par $replacement.
s('fòô bàř fòô bàř')->replace('fòô ', ''); // 'bàřbàř'
Renvoie une chaîne inversée. Une version multi-octets de strrev().
s('fòôbàř')->reverse(); // 'řàbôòf'
Tronque la chaîne à une longueur donnée, tout en s'assurant qu'elle ne divise pas les mots. Si $substring est fourni et qu'une troncature se produit, la chaîne est encore tronquée afin que la sous-chaîne puisse être ajoutée sans dépasser la longueur souhaitée.
s('Quels sont vos projets aujourd'hui ?')->safeTruncate(22, '...');// 'Quels sont vos projets...'
Une fonction str_shuffle() multi-octets. Il renvoie une chaîne avec ses caractères dans un ordre aléatoire.
s('fòôbàř')->shuffle(); // 'àôřbòf'
Convertit la chaîne en un slug d'URL. Cela inclut le remplacement des caractères non-ASCII par leurs équivalents ASCII les plus proches, la suppression des caractères non-ASCII et non alphanumériques restants et le remplacement des espaces par $replacement. Le remplacement est par défaut un seul tiret et la chaîne est également convertie en minuscules. La langue de la chaîne source peut également être fournie pour une translittération spécifique à la langue.
s('Utiliser des chaînes comme fòô bàř')->slugify(); // 'utiliser des chaînes comme-foo-bar'
Renvoie la sous-chaîne commençant à $start et jusqu'à, mais sans inclure l'index spécifié par $end. Si $end est omis, la fonction extrait la chaîne restante. Si $end est négatif, il est calculé à partir de la fin de la chaîne.
s('fòôbàř')->slice(3, -1); // 'bà'
Divise la chaîne avec l'expression régulière fournie, renvoyant un tableau d'objets Stringy. Un entier facultatif $limit tronquera les résultats.
s('foo,bar,baz')->split(',', 2); // ['foo', 'bar']
Renvoie vrai si la chaîne commence par $substring, faux sinon. Par défaut, la comparaison est sensible à la casse, mais peut être rendue insensible en définissant $caseSensitive sur false.
s('FÒÔbàřbaz')->startsWith('fòôbàř', false); // vrai
Renvoie vrai si la chaîne commence par l'une des sous-chaînes $, sinon faux. Par défaut, la comparaison est sensible à la casse, mais peut être rendue insensible en définissant $caseSensitive sur false.
s('FÒÔbàřbaz')->startsWithAny(['fòô', 'bàř'], false); // vrai
Supprimez tous les caractères d'espacement. Cela inclut les tabulations et les caractères de nouvelle ligne, ainsi que les espaces multioctets tels que l'espace fin et l'espace idéographique.
s(' Ο συγγραφέας ')->stripWhitespace(); // 'Οσυγγραφέας'
Renvoie la sous-chaîne commençant à $start avec la longueur $ spécifiée. Elle diffère de la fonction mb_substr() en ce sens que fournir une valeur $length nulle renverra le reste de la chaîne, plutôt qu'une chaîne vide.
s('fòôbàř')->substr(2, 3); // 'ôbà'
Entoure une chaîne avec la sous-chaîne donnée.
s(' ͜ ') -> surround ('ʘ'); // 'ʘ ͜ ʘ'
Renvoie une version de la chaîne avec permutation de casse.
s('Ντανιλ')->swapCase(); // 'νΤΑΝΙΛ'
Renvoie une chaîne avec des guillemets intelligents, des points de suspension et des tirets de Windows-1252 (couramment utilisés dans les documents Word) remplacés par leurs équivalents ASCII.
s('«Je vois…»')->tidy(); // '"Je vois..."'
Renvoie une chaîne coupée avec la première lettre de chaque mot en majuscule. Accepte également un tableau, $ignore, vous permettant de lister les mots à ne pas mettre en majuscule.
$ignore = ['à', 'par', 'pour', 'dans', 'de', 'sur', 'sortie', 'à', 'le'];s('j'aime regarder la télévision' )->titleize($ignore);// 'J'aime regarder la télévision'
Renvoie une version ASCII de la chaîne. Un ensemble de caractères non-ASCII est remplacé par leurs équivalents ASCII les plus proches, et le reste est supprimé par défaut. La langue ou les paramètres régionaux de la chaîne source peuvent être fournis pour une translittération spécifique à la langue dans l'un des formats suivants : en, en_GB ou en-GB. Par exemple, passer « de » entraîne le mappage de « äöü » vers « aeoeue » plutôt que « aou » comme dans d'autres langues.
s('fòôbàř')->toAscii(); // 'foobar's('äöü')->toAscii(); // 'aou's('äöü')->toAscii('de'); // 'aeoue'
Renvoie une représentation booléenne de la valeur de chaîne logique donnée. Par exemple, « vrai », « 1 », « activé » et « oui » renverront vrai. 'false', '0', 'off' et 'no' renverront faux. Dans tous les cas, la casse est ignorée. Pour les autres chaînes numériques, leur signe déterminera la valeur de retour. De plus, les chaînes vides composées uniquement d’espaces renverront false. Pour toutes les autres chaînes, la valeur de retour est le résultat d’une conversion booléenne.
s('OFF')->toBoolean(); // FAUX
Convertit tous les caractères de la chaîne en minuscules. Un alias pour mb_strtolower() de PHP.
s('FÒÔBÀŘ')->toLowerCase(); // 'fòôbàř'
Convertit chaque tabulation de la chaîne en un certain nombre d'espaces, tel que défini par $tabLength. Par défaut, chaque onglet est converti en 4 espaces consécutifs.
s('String Speech = "Salut"')->toSpaces(); // 'String Speech = "Salut"'
Convertit chaque occurrence d'un certain nombre consécutif d'espaces, tel que défini par $tabLength, en tabulation. Par défaut, chaque 4 espaces consécutifs est converti en tabulation.
s('fòô bàř')->toTabs();// 'fòô bàř'
Convertit le premier caractère de chaque mot de la chaîne en majuscule.
s('fòô bàř')->toTitleCase(); // 'Fòô Bàř'
Convertit tous les caractères de la chaîne en majuscules. Un alias pour mb_strtoupper() de PHP.
s('fòôbàř')->toUpperCase(); // 'FÒÔBÀŘ'
Renvoie une chaîne dont les espaces sont supprimés au début et à la fin de la chaîne. Prend en charge la suppression des espaces Unicode. Accepte une chaîne facultative de caractères à supprimer au lieu des valeurs par défaut.
s('fòôbàř ')->trim(); // 'fòôbàř'
Renvoie une chaîne avec les espaces supprimés au début de la chaîne. Prend en charge la suppression des espaces Unicode. Accepte une chaîne facultative de caractères à supprimer au lieu des valeurs par défaut.
s('fòôbàř ')->trimLeft(); // 'fòôbàř'
Renvoie une chaîne avec les espaces supprimés à la fin de la chaîne. Prend en charge la suppression des espaces Unicode. Accepte une chaîne facultative de caractères à supprimer au lieu des valeurs par défaut.
s('fòôbàř ')->trimRight(); // 'fòôbàř'
Tronque la chaîne à une longueur donnée. Si $substring est fourni et qu'une troncature se produit, la chaîne est encore tronquée afin que la sous-chaîne puisse être ajoutée sans dépasser la longueur souhaitée.
s('Quels sont tes projets aujourd'hui ?')->truncate(19, '...'); // 'Quels sont vos pl...'
Renvoie une chaîne minuscule et tronquée séparée par des traits de soulignement. Les traits de soulignement sont insérés avant les caractères majuscules (à l'exception du premier caractère de la chaîne), et à la place des espaces ainsi que des tirets.
s('TestUCase')->souligné(); // 'test_u_case'
Renvoie une version UpperCamelCase de la chaîne fournie. Il supprime les espaces environnants, met en majuscule les lettres qui suivent les chiffres, les espaces, les tirets et les traits de soulignement, et supprime les espaces, les tirets et les traits de soulignement.
s('Upper Camel-Case')->upperCamelize(); // 'UpperCamelCase'
Convertit le premier caractère de la chaîne fournie en majuscule.
s('σ foo')->upperCaseFirst(); // 'Σ foo'
Voici une liste de bibliothèques qui étendent Stringy :
SliceableStringy : tranches de chaîne de type Python en PHP
SubStringy : méthodes avancées de sous-chaînes
Depuis le répertoire du projet, les tests peuvent être exécutés en utilisant phpunit
Publié sous licence MIT - voir LICENSE.txt
pour plus de détails.