Str_replace - Замінює всі входження рядка пошуку на рядок заміни. Str_replace - Замінює всі входження рядка пошуку на рядок заміни Php замінити всі входження в рядку

Str_replace - Замінює всі входження рядка пошуку на рядок заміни. Str_replace - Замінює всі входження рядка пошуку на рядок заміни Php замінити всі входження в рядку

Зараз ми розглянемо одну дуже корисну функцію для, а саме для заміни частин рядків. Це функція str_replace, яка схожа на метод в текстових редакторах «Замінити». Як її використовувати, приклади та поради читайте нижче.

параметри виклику

str_replace має три параметри, які всі є обов'язковими.

Str_replace (search, replace, originalString)

  • search - це те, що ви хочете знайти. Це може бути рядок або масив.
  • replace - всі знайдені елементи, які ви задали в search для пошуку, будуть замінені на це значення. Це, знову ж таки, може бути рядок або масив.
  • originalString - вихідна рядок, в якій і буде проводитися пошук. Функція НЕ змінює вхідні рядок!

Насправді, тут, як і у всіх попередніх уроках, все просто. Давайте подивимося на приклад коду і все відразу стане на свої місця.

Приклад застосування str_replace

Отже, є у нас вхідна рядок «На полиці лежить X кілограм мандарин». Замість «X» ми хочемо підставити потрібну цифру. Може для цього скористатися реплейсом приблизно таким чином:

// Вхідна рядок, яку будемо використовувати як шаблон $ rawstring \u003d "На полиці лежить X кілограм мандарин."; // замінюємо $ str_1 \u003d str_replace ( "X", "10", $ rawstring); // можна і на інше значення замінити, будь $ str_2 \u003d str_replace ( "X", "135473", $ rawstring); echo "Перший раз:". $ Str_1. "
"; Echo" Другий раз: ". $ Str_2;

Отримуємо наступне:

Перший раз: На полиці лежить 10 кілограм мандарин. Другий раз: На полиці лежить 135 473 кілограм мандарин.

Приклад, звичайно, не з кращих, я просто іншого не придумав, але він відображає суть, вірно? Сподіваюся все зрозуміло, якщо немає, то питайте в коментарях.

str_replace з масивами: кілька замін в одній

У прикладі ми використовували реплейс, щоб замінити одне слово «X» на нашу рядок (число або що завгодно), але що якщо ми хочемо замінити багато слів? Можна спробувати просто використовувати функцію кілька разів, або ж створити масив слів, ЯКІ будемо замінювати, а також другий масив, зі значеннями НА ЯКІ будемо замінювати, щоб отримати результат за один виклик функції.

Давайте розширимо той же приклад, але позаменяем ще щось.

// Рядок - шаблон $ rawstring \u003d "На Z лежить X кілограм добірних Y."; // масив ЩО будемо замінювати $ placeholders \u003d array ( "Z", "X", "Y"); // Масив НА ЩО будемо замінювати $ vals_1 \u003d array ( "полиці", "5", "апельсинів"); // Ну або на це $ vals_2 \u003d array ( "столі", "189", "груш"); // замінюємо раз $ str_1 \u003d str_replace ($ placeholders, $ vals_1, $ rawstring); // замінюємо два $ str_2 \u003d str_replace ($ placeholders, $ vals_2, $ rawstring); echo "Один:". $ Str_1. "
"; Echo" Два: ". $ Str_2;

Відповідно, що ми отримаємо.

(PHP 4, PHP 5, PHP 7)

str_replace - Замінює всі входження рядка пошуку на рядок заміни

опис

Ця функція повертає рядок або масив, в якому все входження search в subject замінені на replace.

Якщо не потрібні складні правила пошуку / заміни (наприклад, регулярні вирази), використання цієї функції краще preg_replace ().

список параметрів

Якщо search і replace - масиви, то str_replace () використовує кожне значення з відповідного масиву для пошуку і заміни в subject. Якщо в масиві replace менше елементів, ніж в search, як рядки заміни для решти значень буде використана порожній рядок. Якщо search - масив, а replace - рядок, то цей рядок заміни буде використана для кожного елемента масиву search. Зворотний випадок сенсу не має.

Якщо search або replace є масивами, їх елементи будуть оброблені від першого до останнього.

Шукане значення, також відоме як needle (Голка). Для безлічі шуканих значень можна використовувати масив.

Replace

Значення заміни, буде використано для заміни шуканих значень search. Для безлічі значень можна використовувати масив.

Subject

Рядок або масив, в якому проводиться пошук і заміна, також відомий як haystack (Стіг сіна).

Якщо subject є масивом, то пошук з заміною буде здійснюватися над кожним елементом subject, а результатом функції також буде масив.

Якщо переданий, то буде встановлено в кількість проведених замін.

значення, що повертаються

Ця функція повертає рядок або масив з заміненими значеннями.

приклади

Приклад # 1 Приклади використання str_replace ()

// привласнює
$ Bodytag \u003d str_replace ( "% body%", "black", " " );

// привласнює: Hll Wrld f PHP
$ Vowels \u003d array ( "a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$ Onlyconsonants \u003d str_replace ($ vowels, "", "Hello World of PHP");

// привласнює: You should eat pizza, beer, and ice cream every day
$ Phrase \u003d "You should eat fruits, vegetables, and fiber every day.";
$ Healthy \u003d array ( "fruits", "vegetables", "fiber");
$ Yummy \u003d array ( "pizza", "beer", "ice cream");

$ Newphrase \u003d str_replace ($ healthy, $ yummy, $ phrase);

// привласнює: 2
$ Str \u003d str_replace ( "ll", "", "good golly miss molly!", $ Count);
echo $ count;
?>

Приклад # 2 Приклади потенційних трюків з str_replace ()

// Порядок заміни
$ Str \u003d "Рядок 1 \\ nСтрока 2 \\ rСтрока 3 \\ r \\ nСтрока 4 \\ n";
$ Order \u003d array ( "\\ r \\ n", "\\ n", "\\ r");
$ Replace \u003d "
" ;

// Обробляє спочатку \\ r \\ n для уникнення їх повторної заміни.
echo $ newstr \u003d str_replace ($ order, $ replace, $ str);

// Виводить F, тому що A замінюється на B, потім B на C, і так далі ...
// В результаті E буде замінено F, так як заміна відбувається зліва направо.
$ Search \u003d array ( "A", "B", "C", "D", "E");
$ Replace \u003d array ( "B", "C", "D", "E", "F");
$ Subject \u003d "A";
echo str_replace ($ search, $ replace, $ subject);

// Виводить: яблорехкорех горіх (по вищевказаній причині)
$ Letters \u003d array ( "я", "о");
$ Fruit \u003d array ( "яблуко", "горіх");
$ Text \u003d "я про";
$ Output \u003d str_replace ($ letters, $ fruit, $ text);
echo $ output;
?>

Примітки

зауваження: Ця функція безпечна для обробки даних в двійковій формі.

застереження

Зауваження про порядок заміни

Так як str_replace () здійснює заміну зліва направо, то при використанні множинних замін вона може замінити раніше вставлене значення на інше. Дивіться також приклади на цій сторінці.

зауваження:

Ця функція чутлива до регістру. використовуйте str_ireplace () для заміни, нечутливою до регістру.

(PHP 4, PHP 5, PHP 7)

str_replace - Замінює всі входження рядка пошуку на рядок заміни

опис

Ця функція повертає рядок або масив, в якому все входження search в subject замінені на replace.

Якщо не потрібні складні правила пошуку / заміни (наприклад, регулярні вирази), використання цієї функції краще preg_replace ().

список параметрів

Якщо search і replace - масиви, то str_replace () використовує кожне значення з відповідного масиву для пошуку і заміни в subject. Якщо в масиві replace менше елементів, ніж в search, як рядки заміни для решти значень буде використана порожній рядок. Якщо search - масив, а replace - рядок, то цей рядок заміни буде використана для кожного елемента масиву search. Зворотний випадок сенсу не має.

Якщо search або replace є масивами, їх елементи будуть оброблені від першого до останнього.

Шукане значення, також відоме як needle (Голка). Для безлічі шуканих значень можна використовувати масив.

Replace

Значення заміни, буде використано для заміни шуканих значень search. Для безлічі значень можна використовувати масив.

Subject

Рядок або масив, в якому проводиться пошук і заміна, також відомий як haystack (Стіг сіна).

Якщо subject є масивом, то пошук з заміною буде здійснюватися над кожним елементом subject, а результатом функції також буде масив.

Якщо переданий, то буде встановлено в кількість проведених замін.

значення, що повертаються

Ця функція повертає рядок або масив з заміненими значеннями.

приклади

Приклад # 1 Приклади використання str_replace ()

// привласнює
$ Bodytag \u003d str_replace ( "% body%", "black", " " );

// привласнює: Hll Wrld f PHP
$ Vowels \u003d array ( "a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$ Onlyconsonants \u003d str_replace ($ vowels, "", "Hello World of PHP");

// привласнює: You should eat pizza, beer, and ice cream every day
$ Phrase \u003d "You should eat fruits, vegetables, and fiber every day.";
$ Healthy \u003d array ( "fruits", "vegetables", "fiber");
$ Yummy \u003d array ( "pizza", "beer", "ice cream");

$ Newphrase \u003d str_replace ($ healthy, $ yummy, $ phrase);

// привласнює: 2
$ Str \u003d str_replace ( "ll", "", "good golly miss molly!", $ Count);
echo $ count;
?>

Приклад # 2 Приклади потенційних трюків з str_replace ()

// Порядок заміни
$ Str \u003d "Рядок 1 \\ nСтрока 2 \\ rСтрока 3 \\ r \\ nСтрока 4 \\ n";
$ Order \u003d array ( "\\ r \\ n", "\\ n", "\\ r");
$ Replace \u003d "
" ;

// Обробляє спочатку \\ r \\ n для уникнення їх повторної заміни.
echo $ newstr \u003d str_replace ($ order, $ replace, $ str);

// Виводить F, тому що A замінюється на B, потім B на C, і так далі ...
// В результаті E буде замінено F, так як заміна відбувається зліва направо.
$ Search \u003d array ( "A", "B", "C", "D", "E");
$ Replace \u003d array ( "B", "C", "D", "E", "F");
$ Subject \u003d "A";
echo str_replace ($ search, $ replace, $ subject);

// Виводить: яблорехкорех горіх (по вищевказаній причині)
$ Letters \u003d array ( "я", "о");
$ Fruit \u003d array ( "яблуко", "горіх");
$ Text \u003d "я про";
$ Output \u003d str_replace ($ letters, $ fruit, $ text);
echo $ output;
?>

Примітки

зауваження: Ця функція безпечна для обробки даних в двійковій формі.

застереження

Зауваження про порядок заміни

Так як str_replace () здійснює заміну зліва направо, то при використанні множинних замін вона може замінити раніше вставлене значення на інше. Дивіться також приклади на цій сторінці.

зауваження:

Ця функція чутлива до регістру. використовуйте str_ireplace () для заміни без урахування регістру.

 

 

Це цікаво: