Forum und email
str_replace

str_replace

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

str_replace --  Nahradit všechny výskyty jednoho řetězce dalším řetězcem

Popis

mixed str_replace ( mixed search, mixed replace, mixed subject [, int &count] )

Tato funkce nahradí všechny výskyty needle v argumentu haystack argumentem str. Pokud nepotřebujete složitá pravidla pro nahrazování, měli byste vždy použít tuto funkci místo ereg_replace() nebo preg_replace().

Od PHP 4.0.5 může být každý parametr funkce str_replace() typu array.

Varování

V PHP verzích starších než 4.3.3 byla chyba při používání polí v parametrech search a zároveň replace, která způsobila, že prázdné položky pole search byly přeskočeny bez zvýšení interního ukazatele v poli replace. Bylo to opraveno v PHP 4.3.3. Všechny skripty, které na tuto chybu spoléhaly, by měly před zavoláním této funkce odstranit prázdné hodnoty vyhledávání, aby nasimulovaly původní chování.

Pokud je parametr subject pole, proběhne vyhledávání a nahrazení v každé položce pole subject a návratová hodnota je také pole.

Pokud jsou parametry search a replace pole, funkce str_replace() bere hodnoty těchto polí a používá je pro vyhledávání a nahrazení v parametru subject. Pokud má parametr replace méně hodnot než parametr search, tak se pro chybějící hodnoty použije prázdný řetězec. Pokud je parametr search pole a parametr replace je řetězec, tak se tento řetězec použije pro každou hodnotu parametru search.

Příklad 1. Ukázka str_replace()

<?php
// Vrátí: <body text='black'>
$bodytag = str_replace("%body%", "black", "<body text='%body%'>");

// Vrátí: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");

// Vrátí: You should eat pizza, beer, and ice cream every day
$phrase  = "You should eat fruits, vegetables, and fiber every day.";
$healthy = array("fruits", "vegetables", "fiber");
$yummy   = array("pizza", "beer", "ice cream");

$newphrase = str_replace($healthy, $yummy, $phrase);

// Parametr count je k dispozici od PHP 5.0.0
$str = str_replace("ll", "", "good golly miss molly!", $count);
echo
$count; // 2
?>

Poznámka: Tato funkce je binárně bezpečná.

Poznámka: Od PHP 5.0.0 je počet nalezených a zaměněných řetězců (search) vrácen v parametru count, který je předáván referencí. Před PHP 5.0.0 není tento parametr k dispozici.

Viz také str_ireplace(), substr_replace(), ereg_replace(), preg_replace() a strtr().