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
Ce tag HTML5 este indicat sa contina meniul cu link-uri de navigare in site?
<section> <nav> <article>
<nav><ul>
 <li><a href="http://coursesweb.net/css/" title="CSS Course">CSS Course</a></li>
 <li><a href="http://www.marplo.net/jocuri/" title="Flash Games">Flash Games</a></li>
</ul></nav>
Ce proprietate CSS muta elementrul in dreapta sau stanga de la locul unde e?
text-align clear float
.some_class {
  width: 30%;
  float: left;
}
Clic pe metoda obiectului Math care rotunjeste numarul x descrescator la cel mai apropiat intreg.
Math.ceil(x) Math.abs(x) Math.floor(x)
var num = 12.34567;
num = Math.floor(num);
alert(num);       // 12
Indicati functia PHP care returneaza numarul de caractere dintr-un sir.
mb_strlen() count() stristr()
$str = "sir cu caractere utf-8 åèö";
$nrchr = mb_strlen($str);
echo $nrchr;        // 29
Clic pe raspunsul potrivit la intrebarea: "When it happened?".
On the 7th of July 1996 It is a quarter to 5. Nice weather.
When it happened? On the 8th of August 2001.
- Cand s-a intamplat? Pe 8 August 2001.
Indicati raspunsul potrivit la intrebarea: "¿Cuando sucedió?".
Hace buen tiempo. En el 8 de Agosto de 2001 Son las tres menos cuarto.
¿Cuando sucedió? En el 8 de Agosto de 2001.
- Cand s-a intamplat? Pe 8 August 2001.
Lucrul cu siruri 2

Last accessed pages

  1. Coduri pt culori (1681)
  2. Zoo Amigos (943)
  3. Butterfly Kyodai (5680)
  4. Bubbles3 (8791)
  5. The Rise Of Atlantis (1521)

Popular pages this month

  1. Bubbles3 (3366)
  2. Gramatica limbii engleze - Prezentare Generala (3170)
  3. Prezentul simplu si continuu - Present Tense Simple and Continuous (2266)
  4. Butterfly Kyodai (2168)
  5. Trecutul simplu si continuu - Past Tense Simple and Continuous (1918)