$str = 'IAMALONE:/RU/';
echo "Строка: $str <br /> "; /* Пример замены строки замены всей строки $str на 'goodBlog'. */
echo substr_replace($str, ' goodBlog ', 0) . "<br />";
echo substr_replace($str, ' goodBlog ', 0, strlen($str)) . "<br /><br />";
/* Вставляет 'goodBlog' в начало $str. */
echo substr_replace($str, 'goodBlog', 0, 0) . "<br /><br />";
/* Обе следующих строки заменяют 'RU ' в $str на '.RU'. */
echo substr_replace($str, '.RU', 8, -1) . "<br />";
echo substr_replace($str, '.RU', -5, -1) . "<br /><br />";
/* Удаляет 'RU' из $str. */
echo substr_replace($str, '', 8, -1) . "<br />";
$input = array('A: AAA', 'B: AAA', 'C: AAA'); // Простой случай: заменяем AAA на BBB в каждой строке. echo implode('; ', substr_replace($input, 'BBB', 3, 3))."<br />";
Результат:
A: BBB; B: BBB; C: BBB
Пояснение: мы заменяем начиная с 3 символа строки, следующие три символа на BBB в каждой строке массива $input;
// Более сложный случай с уникальными заменами. $replace = array('AAA', 'BBB', 'CCC'); echo implode('; ', substr_replace($input, $replace, 3, 3)). "<br />";
Результат:
A: AAA; B: BBB; C: CCC
Пояснение: мы заменяем начиная с 3 символа строки, следующие три символа на каждый из элементов массива $replace, соответствующий каждой строке массива $input;
// Замены с разными количествами символов. $length = array(1, 2, 3); echo implode('; ', substr_replace($input, $replace, 3, $length)). "<br />";
A: AAAAA; B: BBBA; C: CCC
Пояснение: мы заменяем начиная с 3 символа строки, следующие символы из массива $length, на каждый из элементов массива $replace, соответствующий каждой строке массива $input;
echo substr_replace('eggs','x',-1,-1)."<br />"; //Результат eggxs substr_replace('eggs','x',-1,-2)."<br />"; // Результат eggxs substr_replace('eggs','x',-1,-2)."<br />"; // Результат eggxs
- функция, которая работает как substr_replace:
function putinplace($string=NULL, $put=NULL, $position=false) { $d1=$d2=$i=false; $d=array(strlen($string), strlen($put)); if($position > $d[0]) $position=$d[0]; for($i=$d[0]; $i >= $position; $i--) $string[$i+$d[1]]=$string[$i]; for($i=0; $i<$d[1]; $i++) $string[$position+$i]=$put[$i]; return $string; } // Explanation $string='My dog dont love postman'; // строка $put="'"; // определяем строку вставки как ' $position=10; // количество символом (позиция) print_r( putinplace($string, $put, $position) );
My dog don't love postman
- функция усечения длинных строк:
Данная функция приводит к усечению длинной строки в меньшую строку заданной длины при замене средней части разделителем точно посередине.
$longString = 'abcdefghijklmnopqrstuvwxyz0123456789z.jpg'; $separator = '/.../'; $separatorlength = strlen($separator) ; $maxlength = 25 - $separatorlength; $start = $maxlength / 2 ; $trunc = strlen($longString) - $maxlength; echo substr_replace($longString, $separator, $start, $trunc);
Результат:
abcdefghij/.../56789z.jpg