1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lkn2015-phpcookbook_3rd_translate

Клонировать/Скачать
chapter1_strings_1.3_替换字符串.md 3.6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 02.12.2024 11:36 0f1959f

Глава 1. Строки

1.3 Замена строки

Задача

Требуется заменить одну строку на другую в указанной части исходной строки. Например, перед выводом номера удостоверения личности необходимо скрыть его часть, кроме последних четырёх цифр.

Решение

Для этого можно использовать функцию substr_replace().

[Пример 1-14]

// $old_string — исходная строка
// $new_substring — новая строка
// $start — позиция начала замены
$new_string = substr_replace($old_string,$new_substring,$start);
// $length — длина заменяемой части
$new_string = substr_replace($old_string,$new_substring,$start,$length);

Функция substr_replace(), если не указан параметр $length, заменяет всю строку, начиная с позиции $start. Если же параметр $length указан, то будет заменена только указанная часть строки.

Пример:

print substr_replace('My pet is a blue dog.','fish.',12);
print substr_replace('My pet is a blue dog.','green',12,4);

Результат:

  • My pet is a fish.
  • My pet is a green dog

Если $credit_card содержит номер кредитной карты, можно заменить все цифры, кроме четырёх последних, на «xxxx»:

$credit_card = '4111 1111 1111 1111';
print substr_replace($credit_card,'xxxx ',0,strlen($credit_card)-4);

Результат:

xxxx 1111

Если значение $start отрицательное, замена начинается с конца строки и отсчитывается в обратном порядке $start символов. Параметр $length также может быть использован.

Пример:

print substr_replace('My pet is a blue dog.','fish.',-9);
print substr_replace('My pet is a blue dog.','green',-9,4);

Результат:

  • My pet is a fish.
  • My pet is a green dog.

Если значения $start и $length равны нулю, новая строка будет вставлена в начало исходной.

Пример:

print substr_replace('My pet is a blue dog.','Title: ',0,0);

Результат:

Title: My pet is a blue dog.

Часто функция substr_replace() используется для вывода только части длинной строки. В примере [1-15] выводится первые 25 символов сообщения, а при клике на ссылку открывается страница с полным текстом сообщения.

[Пример 1–15]

$r = mysql_query("SELECT id,message FROM messages WHERE id = $id") or die();
$ob = mysql_fetch_object($r);
printf('<a href="more-text.php?id=%d">%s</a>',
$ob->id, substr_replace($ob->message,' ...',25));

На странице more-text.php можно получить полный текст сообщения по идентификатору и отобразить его.

См. также

Подробная информация о функции substr_replace() доступна на сайте http://php.net/manual/zh/function.substr-replace.php.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/lkn2015-phpcookbook_3rd_translate.git
git@api.gitlife.ru:oschina-mirror/lkn2015-phpcookbook_3rd_translate.git
oschina-mirror
lkn2015-phpcookbook_3rd_translate
lkn2015-phpcookbook_3rd_translate
master