Úvod HTML CSS PHP MySQL JavaScript
text

Práce s řetězci v PHP

Většinu informací,s kterými v PHP pracujeme jsou textové řetězce.
Funkce Popis
. spojování textu
str_replace nahrádí část textu za jiný
strtr() nahrazení podle slovníku
mb_strlen délka řetězce
mb_substr získá z řetězce jeho konkrétní část
trim odstraní prázdné znaky ze začátku a konce
strtolower malá písmena
strtolower velká písmena
mb_strpos() zjištění pozice
ucfirst první velké písmeno řetězce
ucwords každé slovo v řetězci velké písmeno
strip_tags z textu odstraní HTML tagy
htmlspecialchars speciální HTML znaky převede na entity
explode rozdělí řetězec
implode / join spojí pole
strrev otočí pořadí

Textové řetězce a UTF-8

Část PHP funkcí pro práci s řetězci začíná prefixem mb_. Je to z toho důvodu, že tyto funkce podporují UTF-8 kódování (MB jako MultiByte). V kódování UTF-8 se píše naprostá většina webů, protože umí většinu znaků většiny národních abeced. Funkce bez prefixu mb_ nikdy nepoužívejte, jelikož neumí UTF-8 tak budou vracet špatný výstup.

Nejprve musíme nastavit kódování, jinak nebudou korektně fungovat.

 mb_internal_encoding("UTF-8")
 

Spojování textu

Spojování retězců se prování pomocí operátoru . (tečka).
 
 <?echo "Začátek spojím s ".$proměnou."a s koncem"?>
 

str_replace

Nahrádí část textu za jiný.

str_replace ($search, $replace, $subject ,$count])

$search co chceme najít
$replace čím to chceme nahradit
$subject řetězec, se kterým chceme pracovat (který chceme upravit)
$count lze zadat proměnnou, do které se uloží počet provedených nahrazení
  
  echo str_replace("číslo", "tři", "Zobraz číslo");  //vypíše 'Zobraz tři'
  

strtr()

Nahrazení podle slovníku.

Funkce se často používá k nahrazení textových smajlíků v nějakém textu za HTML obrázky.
      $slovnik = array(
        ':)' => 'úsměv',
        ':D' => 'smích',
       );
       
echo strtr('Ahoj :) Toto jsem opsal z devbooku :D', $slovnik);
     

mb_strlen

Zjištění délky řetězce.
  
  $delka = mb_strlen("kolik"); //v proměnné $delka bude hodnota 5   
  

mb_substr

Získá z řetězce jeho konkrétní část.
Má tři parametry, pokud nezadáme třetí, je vráceno vše až do konce.

substr ($string, $start , $length)

$string zdrojový řetězec
$start od kterého znaku chceme začít podřetězec
$length délka podřetězce, který chceme vrátit (pokud nezadáme, je vráceno vše až do konce)

 
 echo mb_substr("abcdefgh",2,5); > //vypíše 'cdefg'   
 echo mb_substr("abcdefgh",2); > //vypíše 'cdefgh'   
 

trim

Odstraní ze začátku a z konce zadaného řetězce prázdné znaky (mezery, tabulátory, zalomení řádky...) .
Pokud je zadán druhý parametr odstraní se ze začátku a z konce jen zadané znaky.

$text = trim($zdroj);  //odstraní prázdné znaky z konců řetězce    
$text1 = trim($zdroj,"\n\r\t 0y");  //odstraní nové řádky,tabulátory, mezery, nulu a písmeno y      

strtolower, strtoupper

Převéde řetězec na malá či velká písmena.

 echo strtolower('aBc');  //vypíše abc  

 echo strtoupper('aBc'); //vypíše ABC   

mb_strpos()

Zjistí na jaké pozici se v řetězci nachází konkrétní podřetězec nebo zda text podřetězec obsahuje.
Funkce vrací 0 v případě, že je podřetězec na první pozici a false v případě, že nebyl nalezen. Z tohoto důvodu je nutné výsledek porovnávat i s ohledem na datový typ. Jinak by bylo false a 0 vyhodnoceno stejně a podřetězec by nebyl nalezen v případě, že by jím řetězec začínal.

$retezec = mb_strtoupper('Ahoj čau bay');
$podretezec = mb_strtoupper('Čau');

if (mb_strpos($retezec, $podretezec) !== false)
        echo "Nalezeno";
else
        echo("Nenalezeno");
        
        echo mb_strpos($retezec, $podretezec);  // vypíše 5 

ucfirst, ucwords

 
 echo ucfirst("ahoj jak se máš")  // první velké písmeno řetězce - vypíše "Ahoj jak se máš" 
 echo ucwords ("ahoj jak se máš")  // každé slovo v řetězci velké písmeno - vypíše "Ahoj Jak Se Máš" 

strip_tags

Z textu odstraní HTML tagy. Ochrana např. proti vložení do komentáře javascriptu, který zajišťuje automatické přesměrování útočníka na jeho vlastní web.
Jako první parametr zadáváme řetězec, který chceme upravit, jako druhý lze zadat seznam tagů, které se mají v textu ponechat (font strong atd.).
  
 $text = strip_tags($retezec,'<font><strong>'); 
 

htmlspecialchars

Převode speciální HTML znaky na jejich entity( <,>,& a uvozovky).

Má tři parametery:


První je $řetězec na úpravu.

Druhý mění chování funkce. Můžeme je spojovat pomocí |.
Zde jsou tři základní:
ENT_COMPAT Převede uvozovky a apostrofy ponechá.
ENT_QUOTES Převede uvozovky i apostrofy.
ENT_NOQUOTES Ponechá uvozovky i apostrofy.
Třetí je kódování.

  
  $text = htmlspecialchars($retezec,ENT_QUOTES,"cp1251");
  

explode

Rozdělit řetězec na jednotlivé části dle zadaného oddělovače.

explode($oddelovac, $string, $limit)

$oddelovacr oddělovač jednotlivých částí
$string řetězec, který chceme rozdělit
 
$pole = explode (',', "ahoj,bay,čau"); //vytvoří pole s hodnotami ahoj, bay, čau   


$vstup = "1,5,87,65,42,4,456,8,5,98,54,89";
$cisla = explode(',', $vstup);
echo array_sum($cisla);    //vypíše součet 914   

implode / join

Funkce implode slouží opačnému účelu, než explode. Jako parametry jí předáváme spojovací řetězec a pole, které chceme spojit.
  
 $pole[0]  ="ahoj"  ;
 $pole[1]  ="čau"  ;
 $pole[2]  ="bay"  ;
 echo implode (", ",$pole)
 

strrev

Otočí pořadí dat v řetězci.
 
 echo strrev ("abcd); vypíše "dcba"
 
pravy Ascii tabulka
Barvy
Klávesové zkratky


©2013-2021 Trojklik.8u.cz Autor: Vašek D.