1. Manipularea sirurilor

PHP contine peste 70 de functii care lucreaza cu siruri. Aceasta sectiune descrie cateva functii pe care este posibil sa le utilizati frecvent. Aceste functii va permit sa obtineti lungimea unui sir, sa eliminati dintr-un sir caracterele de tip spatiu alb, sa convertiti caracterele unui sir în majuscule sau minuscule si altele.
- Functia strlen() returneaza lungimea sirului specificat ca argument al functiei.
Iata un exemplu simplu de utilizare a functiei strlen():

<?php
$s = "Acesta este un sir";
$n = strlen($s);
echo "<br /> Lungimea sirului este: $n";
?>
Scriptul de mai sus va afisa:
Lungimea sirului este: 18
- Numeroase functii PHP va permit sa eliminati caracterele de tip spatiu alb de la una sau ambele extremitati ale unui sir.
Iata un exemplu; care prezinta modul de operare al acestor functii:
<?php
$s = "         Acesta este un sir         ";
$n = strlen($s);
echo "<br /> Lungimea sirului este: $n";

$trim =chop($s);       // Elimina spatiile albe din partea dreapta a sirului
$n = strlen($trim);
echo "<br /> Lungimea sirului este: $n";

$trim = ltrim($s);       // Elimina spatiile albe din partea stanga a sirului
$n = strlen($trim);
echo "<br /> Lungimea sirului este: $n";

$trim = rtrim($s);       // Elimina spatiile albe din partea dreapta a sirului
$n = strlen($trim);
echo "<br /> Lungimea sirului este: $n";

$trim = trim($s);       // Elimina spatiile albe din ambele parti a sirului
$n = strlen($trim);
echo "<br /> Lungimea sirului este: $n";
?>
Scriptul de mai sus va afisa:
Lungimea sirului este: 36
Lungimea sirului este: 27
Lungimea sirului este: 27
Lungimea sirului este: 27
Lungimea sirului este: 18

Urmatorul tabel prezinta Functiile PHP de eliminare a caracterelor din siruri:
Functii PHP de eliminare a caracterelor din siruri
Functie Descriere
chop(s) - Returneaza valoarea lui 's', eliminând spatiile albe de la extremitatea din dreapta a sirului. Similar cu rtrim()
ltrim(s) - Returneaza valoarea lui 's', eliminând spatiile albe de la extremitatea din stânga a sirului
rtrim(s) - Returneaza valoarea lui 's', eliminând spatiile albe de la extremitatea din dreapta a sirului. Similar cu chop()
trim(s) - Returneaza valoarea lui 's', eliminând spatiile albe de la ambele extremitati
- Functia strtoupper() returneaza valoarea argumentului, convertita la majuscule.
- Functia strtolower{) returneaza valoarea argumentului, convertita la minuscule.
- Functia ucfirst{) returneaza valoarea argumentului, cu primul caracter din sir majuscula.
Nici una din functii nu modifica valoarea argumentului, valoarea convertita este cea returnata ca rezultat al functiei.
Iata un scurt exemplu, care prezinta modul de operare a acestor functii:
<?php
$s = "abcdefg";
$rezultat = strtoupper($s);
$rezultat2 = ucfirst($s);
echo "<br />strtoupper('$s'): $rezultat";
echo "<br />ucfirst('$s'): $rezultat2";
$s = "ABCDE";
$rezultat = strtolower($s);
echo "<br />strtolower('$s'): $rezultat";
?>
Scriptul de mai sus va afisa:
strtoupper(abcdefg): ABCDEFG
ucfirst(abcdefg): Abcdefg
strtolower(ABCDE): abcde

2. Compararea sirurilor

PHP furnizeaza patru functii care sunt deosebit de utile pentru compararea sirurilor. Aceste functii sunt enumerate în tabelul urmator.
Fiecare functie returneaza o valoare al carei semn determina rezultatul comparatiei; nu trebuie sa încercati sa interpretati valoarea returnata efectiva.

Functii PHP de comparatie între siruri
Functia Descriere
strcasecmp(s1, s2) - Executa o comparatie fara sensibilitate la diferenta între majuscule si minuscule. Returneaza o valoare mai mica decât zero daca 's1' este mai mic decât 's2', o valoare mai mare decât zero daca 's1' este mai mare decât 's2', respectiv 0 în celelalte cazuri.
strcmp(s1, s2) - Executa o comparatie cu sensibilitate la diferenta între majuscule si minuscule. Returneaza o valoare mai mica decât zero daca 's1' este mai mic decât 's2', o valoare mai mare decât zero daca 's1' este mai mare decât 's2', respectiv 0 în celelalte cazuri.
strncasecmp(s1, s2, n) - Executa o comparatie fara sensibilitate la diferenta între majuscule si minuscule. La comparatie sunt luate în considerare un numar de 'n' caractere. Returneaza o valoare mai mica decât zero daca 's1' este mai mic decât 's2', o valoare mai mare decât zero daca 's1' este mai mare decât 's2', respectiv 0 în celelalte cazuri.
strncmp(s1,s2, n) - Executa o comparatie cu sensibilitate la diferenta între majuscule si minuscule. La com­paratie sunt luate în considerare un numar de 'n' caractere. Returneaza o valoare mai mica decât zero daca 's1' este mai mic decât 's2', o valoare mai mare decât zero daca 's1' este mai mare decât 's2', respectiv 0 în celelalte cazuri.
Iata un scurt exemplu care prezinta modul de utilizare a acestor functii:
<?php
$s1 = "abcd";
$s2 = "ABCE";
$rezultat = strcasecmp($s1, $s2);
echo "<br /> Functia strcasecmp a returnat $rezultat";
$rezultat = strcmp($s1, $s2);
echo "<br /> Functia strcmp a returnat $rezultat";
$rezultat = strncasecmp($s1, $s2, 3);
echo "<br /> Functia strncasecmp returnat $rezultat";
$rezultat = strncmp($s1, $s2, 3);
echo "<br /> Functia strncmp a returnat $rezultat";
?>
Scriptul de mai sus va afisa:
Functia strcasecmp a returnat -1
Functia strcmp a returnat 1
Functia strncasecmp returnat 0
Functia strncmp a returnat 1
Datele de iesire va arata ca functia strcasecmp() a identificat sirul "abcd" ca fiind mai mic decât "ABCE", in schimb, functia strcmp(), la fel ca si functia strncmp(), a identificat sirul "abcd" ca fiind mai mare decât "ABCE". Aceasta s-a întâmplat deoarece literele minuscule au în secventa ASCII o pozitie superioara literelor scrise cu majuscule; litera 'A' are valoarea ASCII 65, iar litera 'a' are valoarea ASCII 97.
De asemenea, datele de iesire arata ca functia strncasecmp() a identificat sirul "s1" ca egal cu "s2", deoarece au fost luate in considerare numai primele 3 caractere.

3. Descoperirea si extragerea sub-sirurilor

PHP include numeroase functii care gasesc si extrag sub-tiruri, adica parti dintr-un sir. Cele mai importante functii de acest gen sunt rezumate în tabelul urmator:

Functii PHP de extragere si cautare
Functie Descriere
strchr(s1,s2) - Returneaza toate sirurile 's1' de la prima aparitie a sirului 's2' si pâna la sfârsit. Daca 's1' nu este gasit, functia returneaza FALSE. Functia strstr() executa aceeasi operatie
stristr(s1,s2) - Returneaza toate sirurile 's1' de la prima aparitie a sirului 's2' si pâna la sfârsit. Daca 's1' nu este gasit, functia returneaza FALSE. Sirurile 's1' si 's2' sunt comparate fara a se tine cont daca literele sunt majuscule sau minuscule
strpos(s1,s2) - Returneaza pozitia (nr. intreg) a primei aparitii a sirului 's2' în 's1'.Daca 's2' nu este gasit, functia returneaza FALSE
strrchr(s1,s2) - Returneaza toate sirurile 's1' de la ultima aparitie a sirului 's2' si pâna la sfârsit. Daca 's1' nu este gasit, functia returneaza FALSE. La comparatie este folosit numai primul caracter al sirului 's2'
strstr(s1,s2) - Returneaza toate sirurile 's1' de la prima aparitie a sirului 's2' si pâna la sfârsit. Daca 's1' nu este gasit, functia returneaza FALSE. Functia strchr() executa aceeasi operatie
substr(s, starf)
substr(s, start, lung)
- Returneaza portiunea sirului 's' specificata de indexul întreg 'start' respectiv de indexurile 'start' si 'lung'. Prima pozitie a sirului este pozitia 0.
Iata un exemplu simplu, care prezinta modalitatile de utilizare a mai multor functii de extragere si cautare:
<?php
$s = "the cat on the mat near the bat";
$b = "at";
$n = strpos($s, $b);
echo "<br /> strpos(\"$s\", \"$b\"): $n";

$s = "the cat on the mat near the bat";
$b = "at";
$n = strchr($s, $b);
echo "<br /> strchr(\"$s\", \"$b\"): $n";

$s = "the cat on the mat near the bat";
$b = "at";
$n = strrchr($s, $b);
echo "<br /> strrchr(\"$s\", \"$b\"): $n";

$s = "the cat on the mat near the bat";
$rezultat = substr($s, 4, 3);
echo "<br /> substr(\"$s\", 4, 3): $rezultat";
?>
Studiati cu atentie scriptul si tabelul de mai sus pentru a intelege datele de iesire. Iata si datele de iesire:
strpos("the cat on the mat near the bat", "at"): 5
strchr("the cat on the mat near the bat", "at"): at on the mat near the bat
strrchr("the cat on the mat near the bat", "at"): at
substr("the cat on the mat near the bat", 4, 3): cat
O potentiala dificultate în utilizarea functiei strpos() consta în aceea ca poate fi greu de sesizat diferenta dintre valoarea returnata 0, care arata ca sub-sirul a fost gasit în pozitia initiala a sirului, si valoarea returnata FALSE, care arata ca sub-sirul nu a fost gasit.
Iata un scurt exemplu care indica un mod adecvat de testare a valorii returnate de functia strpos(), astfel încât sa se poata face diferenta între cele doua rezultate:
<?php
$poz = strpos($s1, $s2);
if ($poz == FALSE) {
      echo "<br /> sub-sirul nu a fost gasit";
}
?>
Procedeul prezentat foloseste operatorul de identitate (==) pentru a determina daca valoarea returnata este identica - nu doar aritmetic egala - cu valoarea FALSE.

4. Înlocuirea unui sub-sir

O operatie frecvent folosita în programare consta în gasirea unui sub-sir si înlocuirea sa cu o valoare noua. PHP are doua functii deosebit de utile pentru asemenea operatii, si anume str_replace() si substr_replace().
Mai jos sunt prezentate pe scurt aceste functii.
Remarcati ca functia str_replace() noteaza sub-sirul prin valoarea sa, în timp ce functia substr_replace() noteaza sub-sirul prin pozitia sa în interiorul sirului subiect.

Iata un exemplu care prezinta modul de utilizare a acestor functii:
<?php
$subiect = "the cat on the mat near the bat";
echo "<br /> Subiect : $subiect";

$cauta = "cat";
$inlocuire = "DOG";
$rezultat = str_replace($cauta, $inlocuire, $subiect);
echo "<br /> str_replace : $rezultat";

$inlocuire = "CAT";
$rezultat = substr_replace($subiect, $inlocuire, 4, 3);
echo "<br /> substr_replace : $rezultat";
?>
Iata si rezultatul exemplului :
Subiect : the cat on the mat near the bat
str_replace : the DOG on the mat near the bat
substr_replace : the CAT on the mat near the bat

- O lista cu mai multe functii utile in lucrul cu siruri gasiti la pagina -> Functii pentru siruri

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Care tag se foloseste in <table> pentru a crea celula de tip "header"?
<thead> <th> <td>
<table><tr>
  <th>Title 1</th>
  <th>Title 2</th>
</tr></table>
Ce proprietate CSS seteaza distanta dintre randuri?
line-height word-spacing margin
.some_class {
  line-height: 150%;
}
Care functie deschide o noua fereastra.
alert() confirm() open()
document.getElementById("id_button").onclick = function(){
  window.open("http://coursesweb.net/");
}
Indicati functia PHP care returneaza un array cu numele fisierelor si directoarelor dintr-un director.
mkdir() scandir() readdir()
$ar_dir = scandir("dir_name");
var_export($ar_dir);
Care din urmatoarele forme a verbului "sleep" (a dormi) se foloseste pentru viitor?
sleeping slept will sleep
He will sleep there.
- El va dormi acolo.
Care din urmatoarele forme a verbului "dormir" (a dormi) se foloseste pentru viitor?
dormido dormirá durmiendo
Él dormirá allí.
- El va dormi acolo.
Lucrul cu siruri 2

Last accessed pages

  1. Zilele saptamanii - Lunile anului - Anotimpurile - Engleza (432)
  2. Bubbles3 (3487)
  3. Formate text (458)
  4. Substantive - Exercitii si teste engleza incepatori (401)
  5. Adjectivul in limba engleza - The adjective (418)

Popular pages this month

  1. Bubbles3 (3487)
  2. Gramatica limbii engleze - Prezentare Generala (2797)
  3. Prezentul simplu si continuu - Present Tense Simple and Continuous (2526)
  4. Butterfly Kyodai (2203)
  5. Zuma Deluxe (2083)