Posts Tagged ‘ersätta text’

str_replace

fredag, juli 6th, 2012
mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )

Funktionen str_replace använder man för att ersätta en sträng med en annan. Strängen man söker efter brukar kallas för needle på engelska, alltså nål. Strängen man söker i brukar kallas för haystack, alltså höstack på svenska. Man söker således efter en nål i en höstack vilket går mycket snabbare med hjälp av en dator än för hand.

Funktionen fungerar för såväl strängar som arrays (eller fält). Om både search och replace är arrays så kommer ett värde åt gången att plockas från dessa. Om replace har färre värden så används en tom sträng för resterande ersättningar. Om search är en array och replace är en sträng så kommer strängen att ersätta samtliga värden i search. Om search är en array så returnerar funktionen en array och om den är en sträng så returneras en sträng.

// Skriver ut: Min cykel är röd.
$bike_color = "röd";
echo str_replace("blå", $bike_color, "Min cykel är blå.");

// Skriver ut: Min båt är röd.
$boat = array("båt", "röd");
$bike = array("cykel", "blå");
echo str_replace($bike, $boat, "Min cykel är blå.");

Sedan PHP 5 kan man även skicka med en valfri extra variabel till funktionen som talar om hur många gånger ersättningen har utförts.

// Skriver ut 2
$two = "två";
$three = "tre";
$str = str_replace($two, $three, "Jag har två böcker och två tidningar.", $count);
echo $count;

Str_replace ersätter alltid från vänster och till höger och kan därför i vissa fall ersätta ett nyintroducerat värde när man gör flera ersättningar.

Str_replace är case-sensitive, det vill säga den gör skillnad mellan stora och små bokstäver i strängarna. Om man inte vill göra skillnad mellan dessa ska man istället använda sig av funktionen str_ireplace.