2017-25 © Pedro Peláez
 

library string

The Hoa\String library.

image

hoa/string

The Hoa\String library.

  • Tuesday, October 11, 2016
  • by Hoa
  • Repository
  • 7 Watchers
  • 6 Stars
  • 52,429 Installations
  • PHP
  • 3 Dependents
  • 0 Suggesters
  • 3 Forks
  • 0 Open issues
  • 12 Versions
  • 1 % Grown

The README.md

Hoa, (*1)

Hoa is a modular, extensible and structured set of PHP libraries. Moreover, Hoa aims at being a bridge between industrial and research worlds., (*2)

Hoa\String state

This library allows to manipulate UTF-8 strings easily with some search algorithms., (*3)

Warning

This library is deprecated, and doesn't support php >= 7 because of new reserved keyword string, please use Hoa\Ustring., (*4)

Installation

With Composer, to include this library into your dependencies, you need to require hoa/string:, (*5)

{
    "require": {
        "hoa/string": "~2.0"
    }
}

Please, read the website to get more informations about how to install., (*6)

Quick usage

We propose a quick overview of two usages: manipulate UTF-8 strings and one search algorithm., (*7)

Natural UTF-8 strings manipulation

The Hoa\String\String class allows to manipulate easily UTF-8 strings in a very natural way. This class implements the \ArrayAccess, \Countable and \IteratorAggregate interfaces. We will use the following examples:, (*8)

$french   = new Hoa\String\String('Je t\'aime');
$arabic   = new Hoa\String\String('أحبك');
$japanese = new Hoa\String\String('私はあなたを愛して');

To get the first character, we will do:, (*9)

var_dump(
    $french[0],  // string(1) "J"
    $arabic[0],  // string(2) "أ"
    $japanese[0] // string(3) "私"
);

And to get the last character, we will do [-1]. It supports unbounded (and modulo) indexes., (*10)

We note that it cares about text direction. Look at $arabic[0], it returns أ and not ك. To get the direction, we can use the Hoa\String\String::getDirection method (which call the Hoa\String\String::getCharDirection static method), it returns either Hoa\String\String::LTR (0) or Hoa\String\String::RTL (1):, (*11)

var_dump(
    $french->getDirection(),  // int(0)
    $arabic->getDirection(),  // int(1)
    $japanese->getDirection() // int(0)
);

Text direction is also important for the append, prepend, pad… methods on Hoa\String\String for example., (*12)

To get the length of a string, we can use the count function:, (*13)

var_dump(
    count($french),  // int(9)
    count($arabic),  // int(4)
    count($japanese) // int(9)
);

We are also able to iterate over the string:, (*14)

foreach ($arabic as $letter) {
    var_dump($letter);
}

/**
 * Will output:
 *     string(2) "أ"
 *     string(2) "ح"
 *     string(2) "ب"
 *     string(2) "ك"
 */

Again, text direction is useful here. For $arabic, the iteration is done from right to left., (*15)

Some static methods are helpful, such as fromCode, toCode or isUtf8 on Hoa\String\String:, (*16)

var_dump(
    Hoa\String\String::fromCode(0x1a9), // string(2) "Ʃ"
    Hoa\String\String::toCode('Ʃ'),     // int(425) == 0x1a9
    Hoa\String\String::isUtf8('Ʃ')      // bool(true)
);

We can also transform any text into ASCII:, (*17)

$emoji = new Hoa\String\String('I ❤ Unicode');
$maths = new Hoa\String\String('∀ i ∈ ℕ');

echo
    $emoji->toAscii(), "\n",
    $maths->toAscii(), "\n";

/**
 * Will output:
 *     I (heavy black heart) Unicode
 *     (for all) i (element of) N
 */

Search algorithm

The Hoa\String\Search implements search algorithms on strings., (*18)

For example, the Hoa\String\Search::approximated method make a search by approximated patterns (with k differences based upon the principle diagonal monotony). If we search the word GATAA in CAGATAAGAGAA with 1 difference, we will do:, (*19)

$search = Hoa\String\Search::approximated(
    $haystack = 'CAGATAAGAGAA',
    $needle   = 'GATAA',
    $k        = 1
);
$solutions = array();

foreach ($search as $pos) {
    $solutions[] = substr($haystack, $pos['i'], $pos['l']);
}

We will found AGATA, GATAA, ATAAG and GAGAA., (*20)

The result is not very handy but the algorithm is much optimized and found many applications., (*21)

Documentation

Different documentations can be found on the website: http://hoa-project.net/., (*22)

License

Hoa is under the New BSD License (BSD-3-Clause). Please, see LICENSE., (*23)

The Versions

11/10 2016

dev-master

9999999-dev https://hoa-project.net/

The Hoa\String library.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

library search string unicode

11/01 2016

2.16.01.11

2.16.01.11 http://hoa-project.net/

The Hoa\String library.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

library search string unicode

28/07 2015

2.15.07.28

2.15.07.28 http://hoa-project.net/

The Hoa\String library.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

library search string unicode

29/05 2015

2.15.05.29

2.15.05.29 http://hoa-project.net/

The Hoa\String library.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

library search string unicode

25/03 2015

2.15.03.25

2.15.03.25 http://hoa-project.net/

The Hoa\String library.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

library search string unicode

19/02 2015

2.15.02.19

2.15.02.19 http://hoa-project.net/

The Hoa\String library.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

library search string unicode

24/12 2014

2.14.12.24

2.14.12.24 http://hoa-project.net/

The Hoa\String library.

  Sources   Download

BSD-3-Clause

The Requires

 

library search string unicode

09/12 2014

2.14.12.10

2.14.12.10 http://hoa-project.net/

The Hoa\String library.

  Sources   Download

BSD-3-Clause

The Requires

 

library search string unicode

05/10 2014

2.14.11.09

2.14.11.09 http://hoa-project.net/

The Hoa\String library.

  Sources   Download

BSD-3-Clause

The Requires

 

library search string unicode

23/09 2014

2.14.09.23

2.14.09.23 http://hoa-project.net/

The Hoa\String library.

  Sources   Download

BSD-3-Clause

The Requires

 

library search string unicode

17/09 2014

2.14.09.16

2.14.09.16 http://hoa-project.net/

The Hoa\String library.

  Sources   Download

BSD-3-Clause

The Requires

 

library search string unicode

16/09 2014

1.14.09.16

1.14.09.16 http://hoa-project.net/

The Hoa\String library.

  Sources   Download

BSD-3-Clause

The Requires

 

library search string unicode