Archive for the ‘Strängfunktioner’ Category

implode

lördag, februari 2nd, 2013
string implode (string $glue, array $pieces)

Funktionen implode kan man säga är motsatsen till explode. Med hjälp av denna funktion kan man skapa en sträng från ett fält eller en array där alla värden är separerade med valfri sträng.

Exempel

$cars = array('Volvo', 'Saab', 'Toyota');
echo implode(', ', $cars); // Skriver ut Volvo, Saab, Toyota

trim

måndag, januari 28th, 2013
string trim ( string $str [, string $charlist ] )

Funktionen trim används när man vill bli av med whitespace-tecken såsom mellanslag i början och slutet av en sträng. De tecken som plockas bort är följande:

  • ” ” (ASCII 32 (0x20)), ett vanligt mellanslag
  • ”t” (ASCII 9 (0x09)), en tabb
  • ”n” (ASCII 10 (0x0A)), radmatning (line feed)
  • ”r” (ASCII 13 (0x0D)), vagnretur (carriage return
  • ”” (ASCII 0 (0x00)), så kallad NUL-byte.
  • ”x0B” (ASCII 11 (0x0B)), en vertikal tabb

Genom att ange andra tecken som andra argument till funktionen så kan man trimma vilka tecken man vill från sin ursprungliga sträng.

Exempel

$str1 = "  hej ";
echo trim($str1); // Skriver ut "hej"

$str2 = "...hej!";
echo trim($str2, ".!"); // Skriver ut "hej"

strpos

fredag, januari 25th, 2013
int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )

Funktionen strpos används för att söka efter en sträng i en annan. Ifall den eftersökta strängen hittas så returneras positionen där denna börjar, annars returneras false. Funktionen kan också returnera ett värde som värderas som false och därför måste operatorn === användas istället för ==. Man kan också ange ett positivt heltalsvärde som offset ifall man inte vill att funktionen ska börja söka från början av strängen.

Exempel

$oranges = "apelsiner";
$pears = "päron";
$apples_and_oranges = "äpplen och apelsiner";
echo strpos($apples_and_oranges, $oranges); // Skriver ut 11;
if (strpos($apples_and_oranges, $pears) === false) {
    echo "Det finns inga päron";
}

strtolower

lördag, januari 19th, 2013
string strtolower ( string $str )

Funktionen strtolower används för att göra om en sträng till att innehålla enbart gemener, det vill säga små bokstäver. Funktionen är beroende av vilket som är det lokala språket på servern. Är strängen på ett annat språk än engelska så bör därför normalt sett multibyte-varianten mb_strtolower användas istället.

Exempel

$str = "I AM the best!";
$str = strtolower($str);
echo $str; // Skriver ut 'i am the best'

explode

tisdag, januari 15th, 2013
array explode ( string $delimiter , string $string [, int $limit ] )

Explode är en mycket användbar funktion som tillkom i PHP 4 och som delar upp en sträng i en array baserat på en substräng.

Exempel

$str = "jul,tomte,snö,presenter";
$arr = explode(",", $str);
echo $arr[1]; // Skriver ut tomte

Om man bara behöver en del av strängen så kan man ange det maximala antalet element som ska returneras med hjälp av ett positivt eller negativt heltal (anger man 0 så kommer det att behandlas som 1). Negativa värden accepteras från och med PHP 5.1.0. Om ett negativt värde anges kommer detta antal element att uteslutas med början från slutet.

Exempel

$str = "jul,tomte,snö,presenter,,,,,,,";
$arr = explode(",", $str, 4);
echo count($arr); // Skriver ut 4

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.

strlen

fredag, juli 6th, 2012
int strlen ( string $string )

Funktionen strlen returnerar längden på en sträng. Det är antal bytes som returneras och inte antalet tecken. Ett mellanslag räknas alltså oavsett om det står först eller sist i strängen. En tom sträng såväl som NULL returnerar alltid värdet 0.

Före PHP version 5.3.0 så behandlades en array som strängen ”Array” vilket innebar att en array alltid returnerade värdet 5 samtidigt som det resulterade i ett fel av typen E_NOTICE. Från och med PHP 5.3.0 så returneras NULL om man försöker skicka in en array i funktionen och det resulterar numera i ett fel av typen E_WARNING, det vill säga nästa nivå uppåt i skalan.

echo strlen('Tomten'); // 6

echo

fredag, juli 6th, 2012
void echo ( string $arg1 [, string $... ] )

Echo är inte en vanlig funktion utan en av PHP-språkets grundläggande språkkonstruktioner. Dessa skiljer sig från funktionerna på det viset att PHP-parsern direkt känner igen dessa ord utan att kontrollera om det finns en funktion med detta namn. Relativt sett är dessa kommandon de allra snabbaste i PHP-språket. Lyckligtvis så hör de i likhet med echo också till de allra vanligaste.

Syntaxen för echo säger oss att kommandot inte returnerar något värde och att vi kan skicka in en eller flera strängar separerade med ett kommatecken. Eftersom echo inte är en vanlig PHP-funktion så är parenteserna kring dessa strängar valfria.

Så vad gör då echo? Echo gör något av det mest grundläggande inom programmeringen nämligen skriver ut de strängar som skickas in. Här är ett enkelt exempel:

echo "Erik har en röd cykel.";

I PHP så kan du tala om för språket att det handlar om en sträng genom att använda enkla (’) eller dubbla (”) citattecken. I vissa fall gör det skillnad vilket du väljer. Om du ska kunna använda en variabel inom citattecknen så måste du använda dubbla citattecken:

$color = "blå";
echo "Erik har en $color cykel.";

Denna kod skriver ut texten ”Erik har en blå cykel.”. Använder man istället enkla citattecken kommer man att få utskriften ”Erik har en $color cykel.”, det vill säga echo skriver ut exakt det som står där.

Det går även utmärkt att skriva ut siffror och heltal med hjälp av echo. Däremot kan du inte skriva ut andra sammansatta variabeltyper såsom Array eller objekt.

echo 12;