Teksta virknes (strings) PHP ir viens no visbiežāk izmantotajiem datu tipiem. PHP piedāvā plašu funkciju klāstu darbam ar virknēm.

Virknes pamatoperācijas

<?php
$teksts = "Sveika, pasaule!";

echo strlen($teksts); // 16 (garums baitos)
echo mb_strlen($teksts); // 16 (garums rakstzīmēs — korektāk UTF-8)
echo strtoupper($teksts); // SVEIKA, PASAULE!
echo strtolower($teksts); // sveika, pasaule!
?>

Latviešu rakstzīmēm vienmēr lieto mb_ funkcijas (piemēram, mb_strlen, mb_strtoupper), jo standarta funkcijas nepareizi apstrādā daudzbaitu rakstzīmes.

Meklēšana virknē

<?php
$teksts = "PHP ir servera puses valoda";

// Vai satur apakšvirkni?
if (str_contains($teksts, "servera")) { // PHP 8.0+
echo "Atrasts!";
}

// Vai sākas ar...
if (str_starts_with($teksts, "PHP")) { // PHP 8.0+
echo "Sākas ar PHP";
}

// Vai beidzas ar...
if (str_ends_with($teksts, "valoda")) { // PHP 8.0+
echo "Beidzas ar 'valoda'";
}

// Apakšvirknes pozīcija
echo strpos($teksts, "servera"); // 7
?>

Virknes daļas izgūšana

<?php
$teksts = "Sveika, pasaule!";

echo substr($teksts, 0, 6); // Sveika
echo substr($teksts, 8); // pasaule!
echo substr($teksts, -8); // pasaule!
?>

Aizvietošana

<?php
$teksts = "Es mācos PHP";
echo str_replace("PHP", "JavaScript", $teksts);
// Es mācos JavaScript

// Vairākas aizvietošanas
$html = "<p>Teksts ar <b>tagiem</b></p>";
echo strip_tags($html); // Teksts ar tagiem
?>

Sadalīšana un apvienošana

<?php
// Sadalīt virkni masīvā
$csv = "ābols,bumbieris,ķirsis";
$augļi = explode(",", $csv);
// ["ābols", "bumbieris", "ķirsis"]

// Apvienot masīvu virknē
$rezultāts = implode(" | ", $augļi);
// "ābols | bumbieris | ķirsis"
?>

Tīrīšana

<?php
$teksts = " Teksts ar atstarpēm ";
echo trim($teksts); // "Teksts ar atstarpēm"
echo ltrim($teksts); // noņem tikai kreisajā pusē
echo rtrim($teksts); // noņem tikai labajā pusē
?>

Formatēšana

<?php
// Skaitļu formatēšana
$cena = 1234.5;
echo number_format($cena, 2, '.', ','); // 1,234.50

// sprintf — formatēts teksts
$ziņojums = sprintf("Sveiks, %s! Tev ir %d gadi.", "Jāni", 25);
echo $ziņojums; // Sveiks, Jāni! Tev ir 25 gadi.
?>

Drošība — speciālo rakstzīmju aizsardzība

Vienmēr aizsargājiet lietotāja ievadītos datus pirms to izvades HTML:

<?php
$lietotāja_teksts = '<script>alert("hacked")</script>';

// htmlspecialchars novērš XSS uzbrukumus
echo htmlspecialchars($lietotāja_teksts, ENT_QUOTES, 'UTF-8');
// Izvadīs drošu tekstu, nevis izpildīs skriptu
?>