Сега ще разгледаме една много полезна функция, а именно за замяна на части от низове. Това е функцията str_replace, която е подобна на метода в текстови редактори„Замени“. Прочетете по-долу за това как да го използвате, примери и съвети.
str_replace има три параметъра, всички от които са задължителни.
Str_replace(търсене, замяна, оригинален низ)
Всъщност тук, както във всички предишни уроци, всичко е просто. Нека разгледаме примерния код и всичко веднага ще си дойде на мястото.
И така, имаме входния низ „На рафта има X килограма мандарини.“ Вместо „X“ искаме да заменим желаното число. За да направите това, можете да използвате повторение нещо подобно:
//Въвеждане на низ, който ще използваме като шаблон $rawstring = "Има X килограма мандарини на рафта."; //замяна $str_1 = str_replace("X", "10", $rawstring); //може да се замени с друга стойност, всяка $str_2 = str_replace("X", "135473", $rawstring); echo "Първи път: ". $str_1. "
"; echo "Втори път: ". $str_2;
Получаваме следното:
Първи път: На рафта има 10 килограма мандарини. Втори път: На рафта има 135 473 килограма мандарини.
Примерът, разбира се, не е най-добрият, просто не можах да се сетя за друг, но разбира смисъла, нали? Надявам се, че всичко е ясно, ако не, попитайте в коментарите.
В примера използвахме повторение, за да заменим една дума "X" с нашия низ (число или каквото и да е), но какво ще стане, ако искаме да заменим много думи? Можете да опитате просто да използвате функцията няколко пъти или да създадете масив от думи, КОИТО ще заменим, както и втори масив със стойностите, СЪС КОИТО ще заменим, за да получите резултата с едно извикване на функция.
Нека разширим същия пример, но заменим нещо друго.
//Низ - шаблон $rawstring = "На Z лежи X килограм от избраното Y."; //масив КАКВО ще заменим $placeholders = array("Z", "X", "Y"); //Масив КАКВО ще заменим с $vals_1 = array("shelf", "5", "oranges"); //Е, или това $vals_2 = array("table", "189", "pears"); //замени веднъж $str_1 = str_replace($placeholders, $vals_1, $rawstring); //замяна на две $str_2 = str_replace($placeholders, $vals_2, $rawstring); echo "Едно: ". $str_1. "
"; echo "Две: ". $str_2;
Съответно какво получаваме.
(PHP 4, PHP 5, PHP 7)
str_replace — Заменя всички срещания на низа за търсене със заместващия низ
Тази функция връща низ или масив с всички повторения на търсене в темата, заменени с replace.
Ако не са необходими сложни правила за търсене/замяна (като регулярни изрази), използването на тази функция е за предпочитане preg_replace().
Ако търсенето и замяната са масиви, тогава str_replace()използва всяка стойност от съответния масив за търсене и замяна в тема. Ако заместващият масив има по-малко елементи от search, празният низ ще се използва като заместващ низ за останалите стойности.
Ако търсенето е масив и replace е низ, тогава този заместващ низ ще се използва за всеки елемент от масива за търсене. Обратният случай няма смисъл.
Ако търсенето или замяната са масиви, техните елементи ще бъдат обработени от първия до последния. Търсена стойност, известна още катоигла
(игла). Можете да използвате масив за множество стойности за търсене.
Сменете
Стойността за заместване ще се използва за заместване на стойностите за търсене. Можете да използвате масив за множество стойности.
Предмет Низът или масивът, върху който се извършва търсене и замяна, известен също катокупа сено
(копа сено).
Ако subject е масив, тогава търсенето и замяната ще бъдат извършени на всеки елемент subject и резултатът от функцията също ще бъде масив.
Върнати стойности
Примери str_replace()
Пример #1 Примери за използване
// присвоява
$bodytag = str_replace ("%body%" , "черно" , "
// присвоява: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Здравей свят на PHP");
// присвоява: Трябва да ядете пица, бира и сладолед всеки ден $фраза =;
$healthy = array("плодове" , "зеленчуци" , "фибри" );
$yummy = array("пица" , "бира" , "сладолед" );
$newphrase = str_replace($healthy, $yummy, $phrase);
// присвоява: 2
$str = str_replace ("ll" , "" , "браво госпожице Моли!" , $count );
ехо $брой;
?>
Пример #2 Примери за потенциални трикове с str_replace()
// Поръчка за замяна
$str = "Ред 1\nРед 2\rРед 3\r\nРед 4\n";
$order = array("\r\n" , "\n" , "\r" );
$replace = "
"
;
// Първо обработва \r\n, за да избегне повторното им заместване.
echo $newstr = str_replace ($order, $replace, $str);
// Отпечатва F защото A се заменя с B, след това B с C и така нататък...
// В резултат E ще бъде заменено с F, тъй като замяната се извършва отляво надясно.
$търсене = масив("A" , "B" , "C" , "D" , "E" );
$replace = array("B", "C", "D", "E", "F");
$subject = "A" ;
echo str_replace ($search, $replace, $subject);
// Резултати: applerootrootnut (поради горната причина)
$letters = array("I" , "about" );
$fruit = array("apple" , "nut" );
$text = "Аз съм за" ;
$изход = str_replace($букви, $плод, $текст);
ехо $ изход;
?>
Коментирайте: Тази функция е безопасна за обработка на данни в двоична форма.
Предупреждение
защото str_replace()извършва замяна отляво надясно, след което при използване на множество замени може да замени предварително въведена стойност с друга.
Коментирайте:
Вижте също примери на тази страница. Тази функция е чувствителна към главни и малки букви. Използвайте str_ireplace()
(PHP 4, PHP 5, PHP 7)
str_replace — Заменя всички срещания на низа за търсене със заместващия низ
Тази функция връща низ или масив с всички повторения на търсене в темата, заменени с replace.
Ако не са необходими сложни правила за търсене/замяна (като регулярни изрази), използването на тази функция е за предпочитане за замяна без значение на главни и малки букви. .
Ако търсенето и замяната са масиви, тогава str_replace()използва всяка стойност от съответния масив за търсене и замяна в тема. Ако заместващият масив има по-малко елементи от search, празният низ ще се използва като заместващ низ за останалите стойности.
Ако търсенето е масив и replace е низ, тогава този заместващ низ ще се използва за всеки елемент от масива за търсене. Обратният случай няма смисъл.
Ако търсенето или замяната са масиви, техните елементи ще бъдат обработени от първия до последния. Търсена стойност, известна още катоигла
(игла). Можете да използвате масив за множество стойности за търсене.
Сменете
Стойността за заместване ще се използва за заместване на стойностите за търсене. Можете да използвате масив за множество стойности.
Предмет Низът или масивът, върху който се извършва търсене и замяна, известен също катокупа сено
(копа сено).
Ако subject е масив, тогава търсенето и замяната ще бъдат извършени на всеки елемент subject и резултатът от функцията също ще бъде масив.
Върнати стойности
Примери str_replace()
Пример #1 Примери за използване
// присвоява
$bodytag = str_replace ("%body%" , "черно" , "
// присвоява: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Здравей свят на PHP");
// присвоява: Трябва да ядете пица, бира и сладолед всеки ден $фраза =;
$healthy = array("плодове" , "зеленчуци" , "фибри" );
$yummy = array("пица" , "бира" , "сладолед" );
$newphrase = str_replace($healthy, $yummy, $phrase);
// присвоява: 2
$str = str_replace ("ll" , "" , "браво госпожице Моли!" , $count );
ехо $брой;
?>
Пример #2 Примери за потенциални трикове с str_replace()
// Поръчка за замяна
$str = "Ред 1\nРед 2\rРед 3\r\nРед 4\n";
$order = array("\r\n" , "\n" , "\r" );
$replace = "
"
;
// Първо обработва \r\n, за да избегне повторното им заместване.
echo $newstr = str_replace ($order, $replace, $str);
// Отпечатва F защото A се заменя с B, след това B с C и така нататък...
// В резултат E ще бъде заменено с F, тъй като замяната се извършва отляво надясно.
$търсене = масив("A" , "B" , "C" , "D" , "E" );
$replace = array("B", "C", "D", "E", "F");
$subject = "A" ;
echo str_replace ($search, $replace, $subject);
// Резултати: applerootrootnut (поради горната причина)
$letters = array("I" , "about" );
$fruit = array("apple" , "nut" );
$text = "Аз съм за" ;
$изход = str_replace($букви, $плод, $текст);
ехо $ изход;
?>
Коментирайте: preg_replace()
Предупреждение
защото str_replace()извършва замяна отляво надясно, след което при използване на множество замени може да замени предварително въведена стойност с друга.
Коментирайте:
Вижте също примери на тази страница. Тази функция е безопасна за обработка на данни в двоична форма. str_ireplace()