![Stringy](http://danielstjules.com/github/stringy-logo.png)
A PHP string manipulation library with multibyte support. Offers both OO method
chaining and a procedural-style static wrapper. Tested and compatible with
PHP 5.3+ and HHVM. Inspired by underscore.string.js.
[![Build Status](https://api.travis-ci.org/danielstjules/Stringy.svg?branch=master)](https://travis-ci.org/danielstjules/Stringy)
* [Requiring/Loading](#requiringloading)
* [OO and Procedural](#oo-and-procedural)
* [Implemented Interfaces](#implemented-interfaces)
* [PHP 5.6 Creation](#php-56-creation)
* [Methods](#methods)
* [at](#at)
* [camelize](#camelize)
* [chars](#chars)
* [collapseWhitespace](#collapsewhitespace)
* [contains](#contains)
* [containsAll](#containsall)
* [containsAny](#containsany)
* [countSubstr](#countsubstr)
* [create](#create)
* [dasherize](#dasherize)
* [delimit](#delimit)
* [endsWith](#endswith)
* [ensureLeft](#ensureleft)
* [ensureRight](#ensureright)
* [first](#first)
* [getEncoding](#getencoding)
* [hasLowerCase](#haslowercase)
* [hasUpperCase](#hasuppercase)
* [htmlDecode](#htmldecode)
* [htmlEncode](#htmlencode)
* [humanize](#humanize)
* [indexOf](#indexof)
* [indexOfLast](#indexoflast)
* [insert](#insert)
* [isAlpha](#isalpha)
* [isAlphanumeric](#isalphanumeric)
* [isBlank](#isblank)
* [isHexadecimal](#ishexadecimal)
* [isJson](#isjson)
* [isLowerCase](#islowercase)
* [isSerialized](#isserialized)
* [isUpperCase](#isuppercase)
* [last](#last)
* [length](#length)
* [longestCommonPrefix](#longestcommonprefix)
* [longestCommonSuffix](#longestcommonsuffix)
* [longestCommonSubstring](#longestcommonsubstring)
* [lowerCaseFirst](#lowercasefirst)
* [pad](#pad)
* [padBoth](#padboth)
* [padLeft](#padleft)
* [padRight](#padright)
* [regexReplace](#regexreplace)
* [removeLeft](#removeleft)
* [removeRight](#removeright)
* [replace](#replace)
* [reverse](#reverse)
* [safeTruncate](#safetruncate)
* [shuffle](#shuffle)
* [slugify](#slugify)
* [startsWith](#startswith)
* [substr](#substr)
* [surround](#surround)
* [swapCase](#swapcase)
* [tidy](#tidy)
* [titleize](#titleize)
* [toAscii](#toascii)
* [toLowerCase](#tolowercase)
* [toSpaces](#tospaces)
* [toTabs](#totabs)
* [toTitleCase](#totitlecase)
* [toUpperCase](#touppercase)
* [trim](#trim)
* [trimLeft](#trimLeft)
* [trimRight](#trimRight)
* [truncate](#truncate)
* [underscored](#underscored)
* [upperCamelize](#uppercamelize)
* [upperCaseFirst](#uppercasefirst)
* [Links](#links)
* [Tests](#tests)
* [License](#license)
## Requiring/Loading
If you're using Composer to manage dependencies, you can include the following
in your composer.json file:
```json
{
"require": {
"danielstjules/stringy": "~1.10"
}
}
```
Then, after running `composer update` or `php composer.phar update`, you can
load the class using Composer's autoloading:
```php
require 'vendor/autoload.php';
```
Otherwise, you can simply require the file directly:
```php
require_once 'path/to/Stringy/src/Stringy.php';
// or
require_once 'path/to/Stringy/src/StaticStringy.php';
```
And in either case, I'd suggest using an alias.
```php
use Stringy\Stringy as S;
// or
use Stringy\StaticStringy as S;
```
## OO and Procedural
The library offers both OO method chaining with `Stringy\Stringy`, as well as
procedural-style static method calls with `Stringy\StaticStringy`. An example
of the former is the following:
```php
use Stringy\Stringy as S;
echo S::create('Fòô Bàř', 'UTF-8')->collapseWhitespace()->swapCase(); // 'fÒÔ bÀŘ'
```
`Stringy\Stringy` has a __toString() method, which returns the current string
when the object is used in a string context, ie:
`(string) S::create('foo') // 'foo'`
Using the static wrapper, an alternative is the following:
```php
use Stringy\StaticStringy as S;
$string = S::collapseWhitespace('Fòô Bàř', 'UTF-8');
echo S::swapCase($string, 'UTF-8'); // 'fÒÔ bÀŘ'
```
## Implemented Interfaces
`Stringy\Stringy` implements the `IteratorAggregate` interface, meaning that
`foreach` can be used with an instance of the class:
``` php
$stringy = S::create('Fòô Bàř', 'UTF-8');
foreach ($stringy as $char) {
echo $char;
}
// 'Fòô Bàř'
```
It implements the `Countable` interface, enabling the use of `count()` to
retrieve the number of characters in the string:
``` php
$stringy = S::create('Fòô', 'UTF-8');
count($stringy); // 3
```
Furthermore, the `ArrayAccess` interface has been implemented. As a result,
`isset()` can be used to check if a character at a specific index exists. And
since `Stringy\Stringy` is immutable, any call to `offsetSet` or `offsetUnset`
will throw an exception. `offsetGet` has been implemented, however, and accepts
both positive and negative indexes. Invalid indexes result in an
`OutOfBoundsException`.
``` php
$stringy = S::create('Bàř', 'UTF-8');
echo $stringy[2]; // 'ř'
echo $stringy[-2]; // 'à'
isset($stringy[-4]); // false
$stringy[3]; // OutOfBoundsException
$stringy[2] = 'a'; // Exception
```
## PHP 5.6 Creation
As of PHP 5.6, [`use function`](https://wiki.php.net/rfc/use_function) is
available for importing functions. Stringy exposes a namespaced function,
`Stringy\create`, which emits the same behaviour as `Stringy\Stringy::create()`.
If running PHP 5.6, or another runtime that supports the `use function` syntax,
you can take advantage of an even simpler API as seen below:
``` php
use function Stringy\create as s;
// Instead of: S::create('Fòô Bàř', 'UTF-8')
s('Fòô Bàř', 'UTF-8')->collapseWhitespace()->swapCase();
```
## Methods
In the list below, any static method other than S::create refers to a method in
`Stringy\StaticStringy`. For all others, they're found in `Stringy\Stringy`.
Furthermore, all methods that return a Stringy object or string do not modify
the original. Stringy objects are immutable.
*Note: If `$encoding` is not given, it defaults to `mb_internal_encoding()`.*
#### at
$stringy->at(int $index)
S::at(int $index [, string $encoding ])
Returns the character at $index, with indexes starting at 0.
```php
S::create('fòô bàř', 'UTF-8')->at(6);
S::at('fòô bàř', 6, 'UTF-8'); // 'ř'
```
#### camelize
$stringy->camelize();
S::camelize(string $str [, string $encoding ])
Returns a camelCase version of the string. Trims surrounding spaces,
capitalizes letters following digits, spaces, dashes and underscores,
and removes spaces, dashes, as well as underscores.
```php
S::create('Camel-Case')->camelize();
S::camelize('Camel-Case'); // 'camelCase'
```
#### chars
$stringy->chars();
S::chars(string $str [, string $encoding ])
Returns an array consisting of the characters in the string.
```php
S::create('Fòô Bàř', 'UTF-8')->chars();
S::chars('Fòô Bàř', 'UTF-8'); // array(F', 'ò', 'ô', ' ', 'B', 'à', 'ř')
```
#### collapseWhitespace
$stringy->collapseWhitespace()
S::collapseWhitespace(string $str [, string $encoding ])
Trims the string and replaces consecutive whitespace characters with a
single space. This includes tabs and newline characters, as well as
multibyte whitespace such as the thin space and ideographic space.
```php
S::create(' Ο συγγραφέας ')->collapseWhitespace();
S::collapseWhitespace(' Ο συγγραφέας '); // 'Ο συγγραφέας'
```
#### contains
$stringy->contains(string $needle [, boolean $caseSensitive = true ])
S::contains(string $haystack, string $needle [, boolean $caseSensitive = true [, string $encoding ]])
Returns true if the string contains $needle, false otherwise. By default,
the comparison is case-sensitive, but can be made insensitive
by setting $caseSensitive to false.
```php
S::create('Ο συγγραφέας �
没有合适的资源?快使用搜索试试~ 我知道了~
ModStartCMS v8.2.0 白色清爽主题,桌面快捷应用
共2000个文件
js:424个
php:326个
png:246个
需积分: 0 1 下载量 159 浏览量
2024-03-26
16:50:04
上传
评论
收藏 31.66MB ZIP 举报
温馨提示
2024年03月26日ModStartCMS发布v8.2.0版本,增加了以下27个特性: [新功能] 后台白色清爽主题,可通过设置 ADMIN_THEME=default 切换后台主题 [新功能] 管理登录背景 AdminLoginBackground [新功能] 后台登录提示 AdminLoginNotice 功能 [新功能] 日志查看器 LogViewer 功能 [新功能] Display 组件 asLink 参数支持回调模式,支持自定义链接 [新功能] 随机用户头像 MemberRandomAvatarTecmz 功能 [新功能] 网页复制追加文字 CopyAppender 功能 [新功能] 分类快捷操作工具类 CategoryUtil [新功能] JS 库增加【ijs】类型字符串,支持默认可执行代码 [新功能] 升级 XGPlayer 库,更好支持 HLS 视频播放 [新功能] 系统全局消息提示 UI 全新优化 [新功能] JS 库增加 markdown 操作工具类,支持 markdown 转 html [新功能] Curl 工具类请求增加 writeFunctionCall
资源推荐
资源详情
资源评论
收起资源包目录
ModStartCMS v8.2.0 白色清爽主题,桌面快捷应用 (2000个子文件)
symfony_debug.c 7KB
web.config 914B
base.css 973KB
base.css 973KB
style.css 484KB
style.css 484KB
index.css 230KB
index.css 230KB
layui.css 122KB
layui.css 121KB
layui.css 121KB
ueditor.css 114KB
ueditor.css 103KB
ueditor.css 103KB
admin.css 67KB
admin.css 67KB
video-js.css 48KB
video-js.css 48KB
xgplayer.css 36KB
xgplayer.css 36KB
xgplayer.css 36KB
font-awesome.min.css 27KB
font-awesome.min.css 26KB
font-awesome.min.css 26KB
audio.css 15KB
video.css 15KB
attachment.css 14KB
image.css 14KB
swiper.css 14KB
swiper.css 13KB
swiper.css 13KB
vue.css 12KB
vue.css 12KB
vue.css 12KB
audio.css 12KB
video.css 12KB
audio.css 12KB
video.css 12KB
default-skin.css 11KB
tagify.css 11KB
tagify.css 11KB
attachment.css 11KB
attachment.css 11KB
image.css 10KB
image.css 10KB
default-skin.css 8KB
default-skin.css 8KB
shCoreDefault.css 7KB
shCoreDefault.css 7KB
shCoreDefault.css 7KB
banner.css 6KB
banner.css 6KB
iconfont.css 6KB
iconfont.css 6KB
scrawl.css 5KB
cropper.css 5KB
iframe.css 4KB
iframe.css 4KB
photoswipe.css 4KB
cropper.css 4KB
cropper.css 4KB
scrawl.css 3KB
scrawl.css 3KB
variable.css 3KB
variable.css 3KB
codemirror.css 3KB
background.css 3KB
photoswipe.css 2KB
photoswipe.css 2KB
codemirror.css 2KB
codemirror.css 2KB
emotion.css 2KB
member.css 2KB
member.css 2KB
background.css 2KB
background.css 2KB
webuploader.css 2KB
webuploader.css 2KB
webuploader.css 2KB
dialogbase.css 2KB
emotion.css 2KB
emotion.css 2KB
template.css 1KB
webuploader.css 1KB
webuploader.css 1KB
edittable.css 1KB
dialogbase.css 1KB
dialogbase.css 1KB
template.css 955B
template.css 955B
edittable.css 875B
edittable.css 875B
help.css 499B
help.css 361B
help.css 361B
ConfigForm.css 301B
dialog.css 297B
toggle.css 220B
toggle.css 220B
dialog.css 208B
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
魔众
- 粉丝: 493
- 资源: 114
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功