 3560f11935
			
		
	
	
		3560f11935
		
			
		
	
	
	
	
		
			
			By design, UTF-8 allows any byte-oriented substring searching algorithm, since the sequence of bytes for a character cannot occur anywhere else ([source](https://en.wikipedia.org/wiki/UTF-8#Advantages_3)). So `str_replace()` also works for UTF-8-encoded strings, assuming that the input strings are valid UTF-8 strings. The previous implementation of mbStrReplace() did nothing to detect invalid strings. Also, `str_replace()` does not support [Unicode equivalence](https://en.wikipedia.org/wiki/Unicode_equivalence), but nor do the other `mb_string` functions, and nor does `=SUBSTITUTE()` in Excel (tested on Excel for Mac version 15.19.1, Excel 2016 for Windows and LibreOffice 5.1). Closes #109
		
			
				
	
	
		
			43 lines
		
	
	
		
			630 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			630 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| return [
 | |
|     [
 | |
|         'QWDFGYUIOP',
 | |
|         'QWERTYUIOP',
 | |
|         'ERT',
 | |
|         'DFG',
 | |
|     ],
 | |
|     [
 | |
|         'Mxrk Bxker',
 | |
|         'Mark Baker',
 | |
|         'a',
 | |
|         'x',
 | |
|     ],
 | |
|     [
 | |
|         'Mxrk Baker',
 | |
|         'Mark Baker',
 | |
|         'a',
 | |
|         'x',
 | |
|         1,
 | |
|     ],
 | |
|     [
 | |
|         'Mark Baker',
 | |
|         'Mark Baker',
 | |
|         'x',
 | |
|         'a',
 | |
|         1,
 | |
|     ],
 | |
|     'Unicode equivalence is not supported' => [
 | |
|         "\u{0061}\u{030A}",
 | |
|         "\u{0061}\u{030A}",
 | |
|         "\u{00E5}",
 | |
|         'x',
 | |
|     ],
 | |
|     'Multibytes are supported' => [
 | |
|         'x',
 | |
|         "\u{00E5}",
 | |
|         "\u{00E5}",
 | |
|         'x',
 | |
|     ],
 | |
| ];
 |