traži:  
 php.com.hr > Rad sa stringovima

Rad sa stringovima
 


Tehnike PHP programiranja


U ovom poglavlju bit će govora o osnovnim tehnikama rada u PHP-u. Kroz poglavlje upoznat ćete se sa glavnim funkcijama u PHP-u i steći osnovna znanja potrebna za izradu HTML aplikacija koje se baziraju na tekstualnoj reprezentaciji podataka i prikupljanju podataka iz formi. Također će biti govora o nekim malo naprednijim osobinama kao što su session managment i slanje e-maila.


Rad sa stringovima

Stringovi su najčešći tip podataka kojim se barata u PHP-u zbog prirode PHP-a kao alata za izradu HTML stranica na serveru. Iz ovog vrlo logičnog razloga bitno je znati baratati sa njima i manipulirati njihovim sadržajem. U PHP-u se nalaze već gotove funkcije koje automatiziraju većinu operacija koje su potrebne za manipuliranje i rad sa sadržajem string podataka.


Tehnika 1: Izbacivanje nepotrebnog 'bijelog prostora' iz stringa

Ponekada pri radu sa stringovima, a posebno pri obradi podataka iz formi, podatci u sebi sadrže nepotrebne razmake na početku ili kraju stringa. Pod razmacima se podrazumijevaju : razmak od jednog mjesta(space), tab razmak od više spaceova (escape znak \t), znak za novi red na kraju reda (escape znak \n)

Treba obratiti pozornost na to da se nepotrebni prazni prostor i rezultati escape znakova ne vide u HTML pogledu dokumenta već tek kada pogledate source dokumenta ili ukoliko se nalaze unutar <pre>…</pre> tagova za prikaz predformatiranog teksta.

Pogledajmo neke primjere:


Primjer 22: Izbacivanje nepotrebnog praznog prostora iz stringa

<?

$str_glavni=" \tOvo je string \nsa puno praznog prostora \n";


/* ispis stringa na ekran - prikazuje se normalno na ekran,

ali u source pogledu su razmaci vidljivi*/

echo $str_glavni;


// ispis stringa u <pre> tag. Sada su razmaci vidljivi

echo "<pre>$str_glavni</pre>\n";


// izbacivanje praznog prostora sa pocetka stringa

$str_bez_pocetka=ltrim($str_glavni);

echo "<hr>\n";

echo "<h4>String bez praznog prostora na pocetku stringa</h4>\n";

echo "<pre>$str_bez_pocetka</pre>\n";


// izbacivanje praznog prostora sa kraja stringa

$str_bez_kraja=rtrim($str_glavni);

echo "<hr>\n";

echo "<h4>String bez praznog prostora na kraju stringa</h4>\n";

echo "<pre>$str_bez_kraja</pre>\n";


// izbacivanjepraznog prostora iz cijelog stringa

$str_bez_praznina=trim($str_glavni);

echo "<hr>\n";

echo "<h4>String bez praznog prostora na kraju i pocetku stringa</h4>\n";

echo "<pre>$str_bez_praznina</pre>\n";

?>

Objašnjenje:

U ovom primjeru su korištene tri funkcije za izbacivanje praznina sa početka i kraja stringa.

Prva je ltrim(string)

ltrim izbacuje praznine i escape znakove sa lijeve strane (početka) stringa

Druga je rtrim(string)

rtrim izbacuje praznine i escape znakove sa desne strane (kraja) stringa

Treća je trim(string)

trim izbacuje praznine i escape znakove sa obje strane stringa

Ove funkcije mogu izbaciti praznine samo sa početka i kraja striga dok one unutar stringa ostaju na svom mjestu. Ukoliko njih želite izbaciti morat ćete koristiti druge metode poput explode() funkcije čije objašnjenje slijedi u Tehnici 3.

Tehnika 2: Traženje znaka ili stringa unutar stringa

PHP je opremljen funkcijama za pretraživanje string tipova podataka na više načina i metoda. Najjednostavnija metoda je korištenjem string funkcija, a sintaktički malo kompliciraniji način je korištenjem Regular expresiona. U ovoj tehnici je objašnjeno korištenje string funkcija.

Primjer 23 a): Pretraživanje stringa

<?

$string="Ovo je tekst u kojem se trazi neka rijec. Sastoji se od vise recenica.\nTakoder ima i dva reda ilustracije radi";
$trazeni="je";

// ispis stringa kakav je

?>

<h3>Originalni string</h3>

<?

echo $string;

echo "<hr>\n";

?><h3>Traženje stringa ili znaka unutar zadanog stringa</h3><?

// trazenje nekog stringa ili znaka unutar stringa

$str_pretraga=strstr($string,$trazeni);

echo $str_pretraga;

?>

 

Objašnjenje:

U gornjem primjeru je za pretraživanje korištena funkcija strstr($str_zadani,$str_trazeni)

Njoj se kao prvi argument daje string u kojem želimo naći neku vrijednost i kao drugi joj dajemo vrijednost koju tražimo. Ukoliko postoji tražena vrijednost rezultat je ostatak stringa zajedno sa pronađenom vrijednosti na početku rezultata. Svi znakovi prije pojavljivanja su izbačeni.

Napomena : Ukoliko želimo ponovno koristiti ovaj 'skraćeni' string za ponovnu pretragu uvijek ćemo dobiti isti rezultat jer se nađeni string ili znak ne izbacuje iz rezultat već se stavlja na početak. Ukoliko želite opet pretražiti ovaj string

 

Primjer 23 b): Provjera postojanja stringa ili znaka unutar stringa

<hr>

<h3>Ispitivanje postojanja stringa ili znaka unutar zadanog stringa</h3>

 

<?

// provjeravanje da li postoji string ili znak unutra stringa

if($str_pretraga=strstr($string,"zzz")){

echo "Pronaden je string ili znak<br>".$str_pretraga;

} else {

echo "Trazeni string ili znak ne postoji u stringu";

}

?>

 

Objašnjenje:

if($str_pretraga=strstr($string,"zzz")){

Ovom linijom ispitujemo da li se tražena vrijednost nalazi u danom stringu. U isto vrijeme rezultat spremamo u varijablu za kasnije korištenje. Ovo je u potpunosti legalno ispitivanje jer funkcija strstr( ) vraća False ukoliko tražena vrijednost nije pronađena. Ovime se u varijablu sprema vrijednost False koju provjerava if struktura i izvršava se njen else blok koda. U slučaju da je vrijednost pronađena u varijablu se sprema rezultat funkcije koji if struktura gleda kao na true rezultat izraza u uvjetu.

 


PHP
 © 2004 - 2008 php.com.hr