Una biblioteca de manipulación de cadenas PHP con soporte multibyte. Compatible con PHP 5.4+, PHP 7+ y HHVM.
s('cadena')->toTitleCase()->ensureRight('y') == 'Finos'
Consulte la rama 1.x o la rama 2.x para obtener documentación anterior.
¿Por qué?
Instalación
OO y encadenamiento
Interfaces implementadas
Creación de PHP 5.6
EstáticoFirroso
Métodos de clase
crear
Métodos de instancia
añadir | en | entre | camelizar |
caracteres | colapsarespacios en blanco | contiene | contiene todo |
contienecualquiera | contarSubstr | dasherizar | delimitar |
termina con | termina con cualquiera | asegurarIzquierda | asegurar lo correcto |
primero | obtener codificación | tiene minúsculas | tiene mayúsculas |
htmlDecodificar | htmlCodificar | humanizar | índice de |
índice del último | insertar | esAlfa | es alfanumérico |
esBase64 | está en blanco | es hexadecimal | esJson |
es minúscula | está serializado | es mayúscula | último |
longitud | pauta | Prefijo común más largo | más largoCommonSuffix |
subcadena común más larga | minúsculaprimero | almohadilla | padAmbos |
padIzquierda | padDerecha | anteponer | expresiones regularesReemplazar |
eliminarIzquierda | eliminarDerecha | repetir | reemplazar |
contrarrestar | seguroTruncar | barajar | slugificar |
rebanada | dividir | comienza con | comienza con cualquiera |
tira de espacios en blanco | substrato | rodear | intercambioCase |
ordenado | titular | aAscii | a booleano |
a minúsculas | a espacios | a pestañas | toTitleCase |
a mayúsculas | recortar | recortarIzquierda | recortarDerecha |
truncar | subrayado | superiorCamelize | mayúsculasprimero |
Extensiones
Pruebas
Licencia
En parte debido a la falta de soporte multibyte (incluido UTF-8) en muchas de las funciones de cadena estándar de PHP. Pero también para ofrecer un contenedor OO alrededor de las funciones compatibles con multibyte del módulo mbstring
. Stringy maneja algunas peculiaridades, proporciona funcionalidad adicional y, con suerte, hace que sea un poco más fácil trabajar con cadenas.
// Biblioteca estándar strtoupper('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àř')->longitud(); // '6'
Si está utilizando Composer para administrar dependencias, puede incluir lo siguiente en su archivo compositor.json:
"requerir": {"danielstjules/stringy": "~3.1.0"}
Luego, después de ejecutar composer update
o php composer.phar update
, puedes cargar la clase usando la carga automática de Composer:
requiere 'proveedor/autoload.php';
De lo contrario, simplemente puede solicitar el archivo directamente:
require_once 'ruta/a/Stringy/src/Stringy.php';
Y en cualquier caso, sugeriría usar un alias.
utilice StringyStringy como S;
Tenga en cuenta que Stringy se basa en el módulo mbstring
para su soporte multibyte subyacente. Si no se encuentra el módulo, Stringy usará symfony/polyfill-mbstring. ex-mbstring es un módulo no predeterminado, pero muy común. Por ejemplo, con Debian y Ubuntu, está incluido en libapache2-mod-php5, php5-cli y php5-fpm. Para los usuarios de OSX, es el valor predeterminado para cualquier versión de PHP instalada con homebrew. Si se compila PHP desde cero, se puede incluir con el indicador --enable-mbstring
.
La biblioteca ofrece encadenamiento de métodos OO, como se ve a continuación:
use StringyStringy como S;echo S::create('fòô bàř')->collapseWhitespace()->swapCase(); // 'FÒÔ BÀŘ'
StringyStringy
tiene un método __toString(), que devuelve la cadena actual cuando el objeto se usa en un contexto de cadena, es decir: (string) S::create('foo') // 'foo'
StringyStringy
implementa la interfaz IteratorAggregate
, lo que significa que foreach
se puede utilizar con una instancia de la clase:
$fibroso = S::create('fòôbàř');foreach ($fibroso como $char) {echo $char; }// 'fòôbàř'
Implementa la interfaz Countable
, permitiendo el uso de count()
para recuperar la cantidad de caracteres en la cadena:
$fibroso = S::create('fòô');count($fibroso); // 3
Además, se ha implementado la interfaz ArrayAccess
. Como resultado, isset()
se puede utilizar para comprobar si existe un carácter en un índice específico. Y dado que StringyStringy
es inmutable, cualquier llamada a offsetSet
o offsetUnset
generará una excepción. Sin embargo, se ha implementado offsetGet
y acepta índices tanto positivos como negativos. Los índices no válidos dan como resultado una OutOfBoundsException
.
$fibroso = S::create('bàř');echo $fibroso[2]; // 'ř'echo $stringy[-2]; // 'à'isset($stringy[-4]); // falso$fibroso[3]; // OutOfBoundsException$stringy[2] = 'a'; // Excepción
A partir de PHP 5.6, use function
está disponible para importar funciones. Stringy expone una función con espacio de nombres, Stringycreate
, que emite el mismo comportamiento que StringyStringy::create()
. Si ejecuta PHP 5.6 u otro tiempo de ejecución que admita la sintaxis use function
, puede aprovechar una API aún más simple, como se ve a continuación:
use la función Stringycreate como s;// En lugar de: S::create('fòô bàř')s('fòô bàř')->collapseWhitespace()->swapCase();
Todos los métodos enumerados en "Métodos de instancia" están disponibles como parte de un contenedor estático. Para los métodos StaticStringy, se espera que la codificación opcional sea el último argumento. El valor de retorno no se convierte y, por lo tanto, puede ser de tipo Stringy, entero, booleano, etc.
use StringyStaticStringy como S;// Se traduce a Stringy::create('fòôbàř')->slice(0, 3);// Devuelve un objeto Stringy con la cadena "fòô"S::slice('fòôbàř', 0, 3);
Crea un objeto Stringy y asigna a las propiedades str y de codificación los valores proporcionados. $str se convierte en una cadena antes de la asignación y, si no se especifica $encoding, el valor predeterminado es mb_internal_encoding(). Luego devuelve el objeto inicializado. Lanza una InvalidArgumentException si el primer argumento es una matriz u objeto sin un método __toString.
$fibroso = S::create('fòôbàř'); // 'fòôbàř'
Los objetos fibrosos son inmutables. Todos los ejemplos siguientes utilizan la importación de funciones de PHP 5.6 y la sintaxis de matriz corta de PHP 5.4. También asumen que la codificación devuelta por mb_internal_encoding() es UTF-8. Para obtener más detalles, consulte la documentación del método de creación anterior, así como las notas sobre la creación de PHP 5.6.
Devuelve una nueva cadena con $string añadido.
s('fòô')->append('bàř'); // 'fòôbàř'
Devuelve el carácter en $index, con índices que comienzan en 0.
s('fòôbàř')->at(3); // 'b'
Devuelve la subcadena entre $start y $end, si se encuentra, o una cadena vacía. Se puede proporcionar un desplazamiento opcional desde el cual comenzar la búsqueda de la cadena inicial.
s('{foo} y {bar}')->between('{', '}'); // 'foo'
Devuelve una versión camelCase de la cadena. Recorta los espacios circundantes, escribe en mayúscula las letras que siguen a dígitos, espacios, guiones y guiones bajos, y elimina espacios, guiones y guiones bajos.
s('Camel-Case')->camelize(); // 'casoCamello'
Devuelve una matriz que consta de los caracteres de la cadena.
s('fòôbàř')->chars(); // ['f', 'ò', 'ô', 'b', 'à', 'ř']
Recorta la cadena y reemplaza los espacios en blanco consecutivos con un solo espacio. Esto incluye tabulaciones y caracteres de nueva línea, así como espacios en blanco multibyte, como el espacio fino y el espacio ideográfico.
s(' Ο συγγραφέας ')->collapseWhitespace(); // 'Οσυγγραφέας'
Devuelve verdadero si la cadena contiene $aguja; falso en caso contrario. De forma predeterminada, la comparación distingue entre mayúsculas y minúsculas, pero se puede hacer que no lo sea estableciendo $caseSensitive en falso.
s('Ο συγγραφέας είπε')->contiene('συγγραφέας'); // verdadero
Devuelve verdadero si la cadena contiene todos los $agujas; falso en caso contrario. De forma predeterminada, la comparación distingue entre mayúsculas y minúsculas, pero se puede hacer que no lo sea estableciendo $caseSensitive en falso.
s('foo & bar')->containsAll(['foo', 'bar']); // verdadero
Devuelve verdadero si la cadena contiene $agujas, falso en caso contrario. De forma predeterminada, la comparación distingue entre mayúsculas y minúsculas, pero se puede hacer que no lo sea estableciendo $caseSensitive en falso.
s('str contiene foo')->containsAny(['foo', 'bar']); // verdadero
Devuelve el número de apariciones de $substring en la cadena dada. De forma predeterminada, la comparación distingue entre mayúsculas y minúsculas, pero se puede hacer que no lo sea estableciendo $caseSensitive en falso.
s('Ο συγγραφέας είπε')->countSubstr('α'); // 2
Devuelve una cadena en minúsculas y recortada separada por guiones. Los guiones se insertan antes de los caracteres en mayúscula (con excepción del primer carácter de la cadena) y en lugar de espacios y guiones bajos.
s('fooBar')->dasherize(); // 'barra foo'
Devuelve una cadena en minúsculas y recortada separada por el delimitador dado. Los delimitadores se insertan antes de los caracteres en mayúscula (con excepción del primer carácter de la cadena) y en lugar de espacios, guiones y guiones bajos. Los delimitadores alfa no se convierten a minúsculas.
s('fooBar')->delimit('::'); // 'foo::barra'
Devuelve verdadero si la cadena termina en $subcadena; falso en caso contrario. De forma predeterminada, la comparación distingue entre mayúsculas y minúsculas, pero se puede hacer que no lo sea estableciendo $caseSensitive en falso.
s('fòôbàř')->endsWith('bàř'); // verdadero
Devuelve verdadero si la cadena termina con cualquiera de las $subcadenas; falso en caso contrario. De forma predeterminada, la comparación distingue entre mayúsculas y minúsculas, pero se puede hacer que no lo sea estableciendo $caseSensitive en falso.
s('fòôbàř')->endsWithAny(['bàř', 'baz']); // verdadero
Garantiza que la cadena comience con $substring. Si no es así, se antepone.
s('foobar')->ensureLeft('http://'); // 'http://foobar'
Garantiza que la cadena termine con $substring. Si no es así, se adjunta.
s('foobar')->ensureRight('.com'); // 'foobar.com'
Devuelve los primeros $n caracteres de la cadena.
s('fòôbàř')->primero(3); // 'fòô'
Devuelve la codificación utilizada por el objeto Stringy.
s('fòôbàř')->getEncoding(); // 'UTF-8'
Devuelve verdadero si la cadena contiene un carácter en minúscula; falso en caso contrario.
s('fòôbàř')->hasLowerCase(); // verdadero
Devuelve verdadero si la cadena contiene un carácter en mayúsculas; falso en caso contrario.
s('fòôbàř')->hasUpperCase(); // FALSO
Convierta todas las entidades HTML a sus caracteres aplicables. Un alias de html_entity_decode. Para obtener una lista de indicadores, consulte http://php.net/manual/en/function.html-entity-decode.php
s('&')->htmlDecode(); // '&'
Convierta todos los caracteres aplicables a entidades HTML. Un alias de htmlentities. Consulte http://php.net/manual/en/function.htmlentities.php para obtener una lista de indicadores.
s('&')->htmlEncode(); // '&'
Pone en mayúscula la primera palabra de la cadena, reemplaza los guiones bajos con espacios y elimina '_id'.
s('autor_id')->humanizar(); // 'Autor'
Devuelve el índice de la primera aparición de $needle en la cadena y es falso si no se encuentra. Acepta un desplazamiento opcional desde el cual comenzar la búsqueda. Un índice negativo busca desde el final.
s('cadena')->indexOf('ing'); // 3
Devuelve el índice de la última aparición de $needle en la cadena y es falso si no se encuentra. Acepta un desplazamiento opcional desde el cual comenzar la búsqueda. Los desplazamientos pueden ser negativos para contar desde el último carácter de la cadena.
s('foobarfoo')->indexOfLast('foo'); // 10
Inserta $substring en la cadena en el $index proporcionado.
s('fòôbř')->insert('à', 4); // 'fòôbàř'
Devuelve verdadero si la cadena contiene solo caracteres alfabéticos; falso en caso contrario.
s('丹尼爾')->isAlpha(); // verdadero
Devuelve verdadero si la cadena contiene solo caracteres alfabéticos y numéricos; falso en caso contrario.
s('دانيال1')->isAlphanumeric(); // verdadero
Devuelve verdadero si la cadena está codificada en base64; falso en caso contrario.
s('Zm9vYmFy')->isBase64(); // verdadero
Devuelve verdadero si la cadena contiene solo espacios en blanco, falso en caso contrario.
s("nt vf")->isBlank(); // verdadero
Devuelve verdadero si la cadena contiene solo caracteres hexadecimales; falso en caso contrario.
s('A102F')->isHexadecimal(); // verdadero
Devuelve verdadero si la cadena es JSON; falso en caso contrario. A diferencia de json_decode en PHP 5.x, este método es consistente con PHP 7 y otros analizadores JSON, en el sentido de que una cadena vacía no se considera JSON válida.
s('{"foo":"bar"}')->isJson(); // verdadero
Devuelve verdadero si la cadena contiene solo caracteres en minúscula; falso en caso contrario.
s('fòôbàř')->isLowerCase(); // verdadero
Devuelve verdadero si la cadena está serializada; falso en caso contrario.
s('a:1:{s:3:"foo";s:3:"bar";}')->isSerialized(); // verdadero
Devuelve verdadero si la cadena contiene solo caracteres en mayúsculas; falso en caso contrario.
s('FÒÔBÀŘ')->isUpperCase(); // verdadero
Devuelve los últimos $n caracteres de la cadena.
s('fòôbàř')->último(3); // 'bar'
Devuelve la longitud de la cadena. Un alias para la función mb_strlen() de PHP.
s('fòôbàř')->longitud(); // 6
Se divide en nuevas líneas y retornos de carro, devolviendo una matriz de objetos Stringy correspondientes a las líneas de la cadena.
s("fòôôrnbàřn")->líneas(); // ['fòô', 'bàř', '']
Devuelve el prefijo común más largo entre la cadena y $otherStr.
s('foobar')->longestCommonPrefix('foobaz'); // 'fooba'
Devuelve el sufijo común más largo entre la cadena y $otherStr.
s('fòôbàř')->longestCommonSuffix('fòrbàř'); // 'bar'
Devuelve la subcadena común más larga entre la cadena y $otherStr. En el caso de empates, devuelve lo que ocurre primero.
s('foobar')->longestCommonSubstring('boofar'); // 'uu'
Convierte el primer carácter de la cadena proporcionada a minúsculas.
s('Σ foo')->lowerCaseFirst(); // 'σ foo'
Rellena la cadena hasta una longitud determinada con $padStr. Si la longitud es menor o igual que la longitud de la cadena, no se produce ningún relleno. La cadena predeterminada utilizada para el relleno es un espacio y el tipo predeterminado (uno de "izquierda", "derecha", "ambos") es "derecha". Lanza una InvalidArgumentException si $padType no es uno de esos 3 valores.
s('fòôbàř')->pad(9, '-/', 'izquierda'); // '-/-fòôbàř'
Devuelve una nueva cadena de una longitud determinada de modo que ambos lados de la cadena estén rellenos. Alias para pad() con un $padType de 'ambos'.
s('foo bar')->padBoth(9, ' '); // 'barra foo'
Devuelve una nueva cadena de una longitud determinada de modo que se rellena el comienzo de la cadena. Alias para pad() con un $padType de 'izquierda'.
s('barra foo')->padLeft(9, ' '); // 'barra foo'
Devuelve una nueva cadena de una longitud determinada de modo que se rellena el final de la cadena. Alias para pad() con un $padType de 'derecho'.
s('foo bar')->padRight(10, '_*'); // 'foo bar_*_'
Devuelve una nueva cadena que comienza con $string.
s('bàř')->prepend('fòô'); // 'fòôbàř'
Reemplaza todas las apariciones de $pattern en $str por $replacement. Un alias para mb_ereg_replace(). Tenga en cuenta que la opción 'i' con patrones multibyte en mb_ereg_replace() requiere PHP 5.6+ para obtener resultados correctos. Esto se debe a la falta de soporte en la versión incluida de Oniguruma en PHP < 5.6 y en las versiones actuales de HHVM (3.8 e inferiores).
s('fòô ')->regexReplace('f[òô]+s', 'bàř'); // 'bàř's('fò')->regexReplace('(ò)', '1ô'); // 'fòô'
Devuelve una nueva cadena con el prefijo $substring eliminado, si está presente.
s('fòôbàř')->removeLeft('fòô'); // 'bar'
Devuelve una nueva cadena con el sufijo $substring eliminado, si está presente.
s('fòôbàř')->removeRight('bàř'); // 'fòô'
Devuelve una cadena repetida dado un multiplicador. Un alias para str_repeat.
s('α')->repetir(3); // 'ααα'
Reemplaza todas las apariciones de $search en $str por $replacement.
s('fòô bàř fòô bàř')->replace('fòô ', ''); // 'bàř bàř'
Devuelve una cadena invertida. Una versión multibyte de strrev().
s('fòôbàř')->reverse(); // 'řàbôòf'
Trunca la cadena a una longitud determinada, garantizando al mismo tiempo que no divide palabras. Si se proporciona $substring y se trunca, la cadena se trunca aún más para que la subcadena se pueda agregar sin exceder la longitud deseada.
s('¿Cuáles son tus planes hoy?')->safeTruncate(22, '...');// '¿Cuáles son tus planes...'
Una función str_shuffle() multibyte. Devuelve una cadena con sus caracteres en orden aleatorio.
s('fòôbàř')->shuffle(); // 'àôřbòf'
Convierte la cadena en un slug de URL. Esto incluye reemplazar caracteres no ASCII con sus equivalentes ASCII más cercanos, eliminar caracteres no ASCII y no alfanuméricos restantes y reemplazar espacios en blanco con $replacement. El reemplazo predeterminado es un solo guión y la cadena también se convierte a minúsculas. El idioma de la cadena de origen también se puede proporcionar para la transliteración específica del idioma.
s('Usando cadenas como fòô bàř')->slugify(); // 'usando-cadenas-como-foo-bar'
Devuelve la subcadena que comienza en $start y hasta el índice especificado por $end, pero sin incluirlo. Si se omite $end, la función extrae la cadena restante. Si $end es negativo, se calcula desde el final de la cadena.
s('fòôbàř')->slice(3, -1); // 'bá'
Divide la cadena con la expresión regular proporcionada y devuelve una matriz de objetos Stringy. Un límite $ entero opcional truncará los resultados.
s('foo,bar,baz')->split(',', 2); // ['foo', 'barra']
Devuelve verdadero si la cadena comienza con $subcadena; falso en caso contrario. De forma predeterminada, la comparación distingue entre mayúsculas y minúsculas, pero se puede hacer que no lo sea estableciendo $caseSensitive en falso.
s('FÒÔbàřbaz')->startsWith('fòôbàř', falso); // verdadero
Devuelve verdadero si la cadena comienza con cualquiera de las $subcadenas, falso en caso contrario. De forma predeterminada, la comparación distingue entre mayúsculas y minúsculas, pero se puede hacer que no lo sea estableciendo $caseSensitive en falso.
s('FÒÔbàřbaz')->startsWithAny(['fòô', 'bàř'], falso); // verdadero
Elimina todos los espacios en blanco. Esto incluye tabulaciones y caracteres de nueva línea, así como espacios en blanco multibyte, como el espacio fino y el espacio ideográfico.
s(' Ο συγγραφέας ')->stripWhitespace(); // 'Οσυγγραφέας'
Devuelve la subcadena que comienza en $start con la longitud $especificada. Se diferencia de la función mb_substr() en que proporcionar una longitud $ nula devolverá el resto de la cadena, en lugar de una cadena vacía.
s('fòôbàř')->substr(2, 3); // 'ôbà'
Rodea una cadena con la subcadena dada.
s(' ͜ ')->surround('ʘ'); // 'ʘ ͜ ʘ'
Devuelve una versión de la cadena intercambiada entre mayúsculas y minúsculas.
s('Ντανιλ')->swapCase(); // 'νΤΑΝΙΛ'
Devuelve una cadena con comillas tipográficas, puntos suspensivos y guiones de Windows-1252 (comúnmente utilizados en documentos de Word) reemplazados por sus equivalentes ASCII.
s('“Ya veo…”')->tidy(); // '"Veo..."'
Devuelve una cadena recortada con la primera letra de cada palabra en mayúscula. También acepta una matriz, $ignore, que le permite enumerar palabras que no deben escribirse en mayúscula.
$ignore = ['en', 'por', 'para', 'dentro', 'de', 'sobre', 'fuera', 'hacia', 'el'];s('me gusta ver televisión' )->titleize($ignore);// 'Me gusta ver televisión'
Devuelve una versión ASCII de la cadena. Un conjunto de caracteres que no son ASCII se reemplazan con sus homólogos ASCII más cercanos y el resto se elimina de forma predeterminada. El idioma o la configuración regional de la cadena de origen se pueden proporcionar para la transliteración específica del idioma en cualquiera de los siguientes formatos: en, en_GB o en-GB. Por ejemplo, pasar "de" da como resultado que "äöü" se asigne a "aeoeue" en lugar de "aou" como en otros idiomas.
s('fòôbàř')->toAscii(); // 'foobar's('äöü')->toAscii(); // 'aou's('äöü')->toAscii('de'); // 'aeoeue'
Devuelve una representación booleana del valor de cadena lógica dado. Por ejemplo, "verdadero", "1", "activado" y "sí" devolverán verdadero. 'falso', '0', 'desactivado' y 'no' devolverán falso. En todos los casos, se ignora el caso. Para otras cadenas numéricas, su signo determinará el valor de retorno. Además, las cadenas en blanco que constan únicamente de espacios en blanco devolverán falso. Para todas las demás cadenas, el valor de retorno es el resultado de una conversión booleana.
s('OFF')->toBoolean(); // FALSO
Convierte todos los caracteres de la cadena a minúsculas. Un alias para mb_strtolower() de PHP.
s('FÒÔBÀŘ')->toLowerCase(); // 'fòôbàř'
Convierte cada pestaña de la cadena en una cierta cantidad de espacios, según lo definido por $tabLength. De forma predeterminada, cada pestaña se convierte en 4 espacios consecutivos.
s('String discurso = "Hola"')->toSpaces(); // ' Discurso de cadena = "Hola"'
Convierte cada aparición de algún número consecutivo de espacios, según lo definido por $tabLength, en una pestaña. De forma predeterminada, cada 4 espacios consecutivos se convierte en una pestaña.
s(' fòô bàř')->toTabs();// ' fòô bàř'
Convierte el primer carácter de cada palabra de la cadena a mayúscula.
s('fòô bàř')->toTitleCase(); // 'Fòô Bàř'
Convierte todos los caracteres de la cadena a mayúsculas. Un alias para mb_strtoupper() de PHP.
s('fòôbàř')->toUpperCase(); // 'FÒÔBÀŘ'
Devuelve una cadena sin espacios en blanco al principio y al final de la cadena. Admite la eliminación de espacios en blanco Unicode. Acepta una cadena opcional de caracteres para eliminar en lugar de los valores predeterminados.
s(' fòôbàř ')->trim(); // 'fòôbàř'
Devuelve una cadena sin espacios en blanco desde el inicio de la cadena. Admite la eliminación de espacios en blanco Unicode. Acepta una cadena opcional de caracteres para eliminar en lugar de los valores predeterminados.
s(' fòôbàř ')->trimLeft(); // 'fòôbàř'
Devuelve una cadena sin espacios en blanco al final de la cadena. Admite la eliminación de espacios en blanco Unicode. Acepta una cadena opcional de caracteres para eliminar en lugar de los valores predeterminados.
s(' fòôbàř ')->trimRight(); // 'fòôbàř'
Trunca la cadena a una longitud determinada. Si se proporciona $substring y se trunca, la cadena se trunca aún más para que la subcadena se pueda agregar sin exceder la longitud deseada.
s('¿Cuáles son tus planes para hoy?')->truncate(19, '...'); // '¿Cuáles son tus pl...'
Devuelve una cadena en minúsculas y recortada separada por guiones bajos. Los guiones bajos se insertan antes de los caracteres en mayúscula (con excepción del primer carácter de la cadena) y en lugar de espacios y guiones.
s('TestUCase')->subrayado(); // 'prueba_u_case'
Devuelve una versión UpperCamelCase de la cadena proporcionada. Recorta los espacios circundantes, escribe en mayúscula las letras que siguen a los dígitos, espacios, guiones y guiones bajos, y elimina espacios, guiones y guiones bajos.
s('Upper Camel-Case')->upperCamelize(); // 'UpperCamelCase'
Convierte el primer carácter de la cadena proporcionada a mayúsculas.
s('σ foo')->upperCaseFirst(); // 'Σfoo'
La siguiente es una lista de bibliotecas que amplían Stringy:
SliceableStringy: cortes de cadenas similares a Python en PHP
SubStringy: métodos avanzados de subcadena
Desde el directorio del proyecto, las pruebas se pueden ejecutar usando phpunit
Publicado bajo la licencia MIT; consulte LICENSE.txt
para obtener más detalles.