aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md96
1 files changed, 55 insertions, 41 deletions
diff --git a/README.md b/README.md
index 5693901..a64c0a2 100644
--- a/README.md
+++ b/README.md
@@ -19,17 +19,21 @@ 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:
- $french = new Hoa\String\String('Je t\'aime');
- $arabic = new Hoa\String\String('أحبك');
- $japanese = new Hoa\String\String('私はあなたを愛して');
+```php
+$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:
- var_dump(
- $french[0], // string(1) "J"
- $arabic[0], // string(2) "أ"
- $japanese[0] // string(3) "私"
- );
+```php
+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.
@@ -40,35 +44,41 @@ We note that it cares about text **direction**. Look at `$arabic[0]`, it returns
`Hoa\String\String::getCharDirection` static method), it returns either
`Hoa\String\String::LTR` (`0`) or `Hoa\String\String::RTL` (`1`):
- var_dump(
- $french->getDirection(), // int(0)
- $arabic->getDirection(), // int(1)
- $japanese->getDirection() // int(0)
- );
+```php
+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.
To get the length of a string, we can use the `count` function:
- var_dump(
- count($french), // int(9)
- count($arabic), // int(4)
- count($japanese) // int(9)
- );
+```php
+var_dump(
+ count($french), // int(9)
+ count($arabic), // int(4)
+ count($japanese) // int(9)
+);
+```
We are also able to iterate over the string:
- foreach($arabic as $letter)
- var_dump($letter);
+```php
+foreach($arabic as $letter)
+ var_dump($letter);
- /**
- * Will output:
- * string(2) "أ"
- * string(2) "ح"
- * string(2) "ب"
- * string(2) "ك"
- */
+/**
+ * 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.
@@ -76,11 +86,13 @@ right to left.
Some static methods are helpful, such as `fromCode`, `toCode` or `isUtf8` on
`Hoa\String\String`:
- var_dump(
- Hoa\String\String::fromCode(0x1a9), // string(2) "Ʃ"
- Hoa\String\String::toCode('Ʃ'), // int(425) == 0x1a9
- Hoa\String\String::isUtf8('Ʃ') // bool(true)
- );
+```php
+var_dump(
+ Hoa\String\String::fromCode(0x1a9), // string(2) "Ʃ"
+ Hoa\String\String::toCode('Ʃ'), // int(425) == 0x1a9
+ Hoa\String\String::isUtf8('Ʃ') // bool(true)
+);
+```
### Search algorithm
@@ -91,15 +103,17 @@ 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:
- $search = Hoa\String\Search::approximated(
- $haystack = 'CAGATAAGAGAA',
- $needle = 'GATAA',
- $k = 1
- );
- $solutions = array();
-
- foreach($search as $pos)
- $solutions[] = substr($haystack, $pos['i'], $pos['l']);
+```php
+$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`.