Изменение содержимого строки выполняется с помощью следующих функций:
mixed str_replace(mixed search, mixed replace,
mixed subject)
string substr_replace(string string, string replacement,
int start [, int length])
string strtr(string str, string from, string to)
string strtr(string str, array replace_pairs)
string strip_tags(string str [, string allowable_tags])
string nl2br(string string)
string strrev(string string)
string str_repeat(string input, int multiplier)
string strtolower(string str)
string strtoupper(string string)
string trim(string str [, string charlist])
string ltrim(string str [, string charlist])
string rtrim(string str [, string charlist])
Функция str_replace() возвращает строку или массив, в котором строки search в строке или массиве subject заменены строкой replace. Если subject является массивом, то поиск и замена производится в каждом элементе массива. Если search и replace являются массивами, то поиск в subject производится для каждого элемента массива search, который заменяется элементом массива replace с тем же индексом.
Функция substr_replace() заменяет часть строки string, начиная с позиции start и длиной length строкой replacement. Если start – отрицательное число, позиция начала замены отсчитывается от конца строки. Если параметр length – отрицательное число, он определяет позицию от конца строки, на которой заканчивается замена. Если параметр length не задан, замена производится до конца строки.
|
|
Функция strtr() имеет две формы. Первая форма возвращает строку, в которой каждый символ строки from, встречающийся в строке string, заменяется соответствующим символом строки to (если строки разной длины, то для замены используется наименьшая длина). Во второй форме ключи массива во втором параметре содержат строки поиска, а значения – строки замены.
Функция strip_tags() удаляет элементы HTML и PHP из строки str. Во втором параметре allowable_tags может быть задан список элементов, которые не удаляются из строки.
Функция nl2br() возвращает строку, в которой перед каждыми символами перехода на новую строку вставляется элемент <br>.
Функция strrev() возвращает строку с символами исходной строки string, переставленными в обратном порядке, а функция str_repeat() возвращает строку, в которой строка, указанная в первом параметре, повторяется количество раз, указанное во втором параметре. Функции strtolower() и strtoupper() возвращают значения строки, в которых латинские буквы исходной строки переведены соответственно в нижний или верхний регистр.
Функции trim(), ltrim() и rtrim() удаляют указанные во втором параметре символы соответственно в начале и конце строки, только в начале строке или только в конце строки. Диапазон значений удаляемых символов можно указать, указав между нижней и верхней границей диапазона символы "..", например:
$str2 = trim($str2, "\0x00..\0x1F");
удаляет все управляющие символы в начале и в конце строки $str2. Если второй параметр не указан, удаляются все пробельные символы.
|
|
Пример 4.6.119. Использование функций str_replace() и substr_replace():
В следующем фрагменте программы выполняются замены фамилии, имени и отчества:
// Изменяемая строка
$str = 'Name: Ivanov Ivan Ivanovich';
// Замена имени в строке
$str = substr_replace($str, 'Valentin', 13, 4);
// Замена в строке фамилии и отчества
$str = str_replace('Ivan', 'Sidor', $str);
// Вывод полученной строки
print "\n\$str='$str'";
Вывод этого фрагмента будет иметь следующий вид:
Пример 4.6.120. Использование функции strtr():
1. Замена в строке символа ":" на символ перехода на новую строку, а символ пробела – на символ ";":
$str = 'Name:Ivanov Ivan Ivanovich'; // Изменяемая строка
$str = strtr($str, ": ","\n;"); // Замена символов в строке
print "\n\$str='$str'";// Вывод полученной строки
В результате выполнения фрагмента на экран будут выведены строки:
2. Перестановка фамилии в конец строки в строке $str:
// Изменяемая строка
$str = 'Name: Ivanov Ivan Ivanovich';
// Массив замены подстрок
$exchange = array('Ivanovich' => 'Ivanov',
'Ivan ' => 'Ivanovich ', 'Ivanov ' => 'Ivan ');
// Замена подстрок в строке
$str = strtr($str, $exchange);
// Вывод полученной строки
print "\n\$str='$str'";
В результате выполнения фрагмента на экран будет выведена строка:
Пример 4.6.121. Использование функций strip_tags() и nl2br():
В следующем фрагменте программы из строки $str удаляются все элементы HTML, кроме элемента <p>, а также символ перехода на новую строку дополняется элементом <br>:
// Изменяемая строка
$str = "<h1>Header <i>1</i></h1>\n<p>Paragraph text</p>";
// Удаление элементов <h1> и <i> из строки
$str = strip_tags($str, '<p>');
// Добавление элемента <br> в строку
$str = nl2br($str);
// Вывод полученной строки
print "\n\$str='$str'";
В результате выполнения фрагмента на экран будут выведены строки: