Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/stk2k/xstring

Basic string library
https://github.com/stk2k/xstring

Last synced: 4 days ago
JSON representation

Basic string library

Awesome Lists containing this project

README

        

Basic string library
=======================

[![Latest Version on Packagist](https://img.shields.io/packagist/v/stk2k/xstring.svg?style=flat-square)](https://packagist.org/packages/stk2k/xstring)
[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](LICENSE.md)
[![Build Status](https://api.travis-ci.com/stk2k/xstring.svg?branch=main)](https://api.travis-ci.com/stk2k/xstring.svg?branch=main)
[![Coverage Status](https://coveralls.io/repos/github/stk2k/xstring/badge.svg?branch=main)](https://coveralls.io/repos/github/stk2k/xstring/badge.svg?branch=main)
[![Code Climate](https://codeclimate.com/github/stk2k/xstring/badges/gpa.svg)](https://codeclimate.com/github/stk2k/xstring)
[![Total Downloads](https://img.shields.io/packagist/dt/stk2k/xstring.svg?style=flat-square)](https://packagist.org/packages/stk2k/xstring)

## Description

Basic string library

## Feature

- Supports ascii string and multibyte string
- Provide facade interface(xs)

## Usage

### Facade interface(xs)

```php
use stk2k\xstring\xs;

// Length
echo xs::length('Hello'); // 5
echo xs::length('你好'); // 2

// Join
echo xs::join(',', [1,2,3]); // 1,2,3

// Index of
echo xs::indexOf('Hello', 'e'); // 1

// Contains
echo xs::contains('Hello', 'ell'); // true

// Starts with
echo xs::startsWith('Hello', 'He'); // true

// Ends with
echo xs::endsWith('Hello', 'lo'); // true

// Substring
echo xs::substring('Hello', 1, 2); // el

// Remove
echo xs::remove('Hello', 1, 2); // Hlo

// Insert
echo xs::insert('Hello World!', 5, ','); // Hello, World!

// To lower case
echo xs::toLower('Hello'); // hello

// To upper case
echo xs::toUpper('Hello'); // HELLO

// Trim left and right
echo xs::trim(' [Hello] '); // [Hello]

// Trim left
echo xs::trimStart(' [Hello] ', ' ['); // Hello]

// Trim right
echo xs::trimEnd(' [Hello] ', ' ]'); // [Hello

// Replace
echo xs::replace('Hello, World!', 'o', 'e'); // Helle, Werld!

// Replace by regular expression
echo xs::replaceRegEx('Hello, World!', '/o/', 'e'); // Helle, Werld!

// method chain
echo xs::trim(' [Hello] ')->toLower()->remove(1,2); // [hlo]

// format
// - see more samples: https://github.com/stk2k/xstring-format
echo xs::format('Hello, {0}!', 'David'); // Hello, David!

// foreach
xs::each('Hello', function($c){
echo $c . '.'; // H.e.l.l.o.
});

// match
echo xs::match('Hello, World!', '/lo/'); // ["lo"]
echo xs::match('Foo123, Bar456, Foo789', '/Foo([0-9]+)/'); // ['Foo123','123']
```

### global function(s)

```php
use function stk2k\xstring\globals\s;

echo s('Hello'); // Hello
echo s('Hello')->length(); // 5
echo s('Hello')->toLower(); // hello

// foreach
foreach(s('Hello') as $c){
echo $c . '.'; // H.e.l.l.o.
}

```

### xStringArray

```php
use stk2k\xstring\xStringArray;

$sa = new xStringArray(['a', 'b', 'c']);

echo count($sa); // 3
foreach($sa as $i) echo $i; // abc
echo $sa->join(','); // a,b,c
echo $sa->get(1); // b
echo $sa[1]; // b
unset($sa[1]);
echo $sa; // {"0":"a","2":"c"}
$sa[1] = 'Foo';
echo $sa; // {"0":"a","2":"c","1":"Foo"}
```

### xStringBuffer

```php
use stk2k\xstring\xStringBuffer;

$b = new xStringBuffer('abc');
$c = new xStringBuffer('a,b,c');

echo $b->length(); // 3
echo $c->length(); // 5
foreach($b as $i) echo $i; // abc
echo json_encode($c->split(',')); // ["a","b","c"]
echo json_encode($b->split()); // ["a","b","c"]
echo $b->append('d'); // abcd
```

## Requirement

PHP 7.2 or later

## Installing stk2k/xstring

The recommended way to install stk2k/xstring is through
[Composer](http://getcomposer.org).

```bash
composer require stk2k/xstring
```

After installing, you need to require Composer's autoloader:

```php
require 'vendor/autoload.php';
```

## License
This library is licensed under the MIT license.

## Author

[stk2k](https://github.com/stk2k)

## Disclaimer

This software is no warranty.

We are not responsible for any results caused by the use of this software.

Please use the responsibility of the your self.