II  test - PHP rešenja

 

3. Napisati PHP iskaz kojim se

a)     Iz niske "Zdravo, ja sam PHP skipt" izdvaja podniska "PHP"

 

$s="Zdravo, ja sam PHP skipt";  echo substr(strstr($s, "PHP"),0,3);

b)     U nisci "Zdravo, ja sam JavaScipt skript" podniska "JavaScript" zamenjuje niskom "PHP" izdvojenom pod  a)

 

$s="Zdravo, ja sam JavaScript skript";

echo str_replace("JavaScript","PHP",$s);

 

4. Napisati PHP skript koji će kreirati HTML dokument koji sadrži tabelu sa dve kolone. U prvoj koloni je dosije  studenta (formira se u obliku godina upisa/indeks, npr. 2005/12), a u drugoj koloni su njihovi poeni. Tabela treba da bude sortirana prema broju poena u nerastućem poretku. Koristiti operator tačka (.) za nadovezivanje stringova. Podaci se unose preko preko formulara  u tekst polja:

  za dosije <input type="text" name="d[]" size="10" maxlength="10">

  za poene <input type="text" name="p[]" size="3" maxlength="3">

 

I NACIN

 

<?php

 

$dosije_niz= $_POST['d'];

$poeni_niz= $_POST['p'];

 

$c = array_combine($dosije_niz, $poeni_niz);

/* $c je asocijativni niz ciji indeksi su vrednosti niza d,

      a vrednosti odgovaraju vrednostima niza p.

Npr. ako $d[0]="2005/07", $p[0]=88, onda $c['2005/07']=88

 */

 

 

//sortiranje u nerastucem poretku

arsort($c);

 

//ispis tabele

 

print "<TABLE BORDER=3 CELLSPACING=4 CELLPADDING=5>";

 

foreach ($c as $key => $val)

{

 echo "<TR><TD>$key</TD> <TD> $val</TD> </TR>";

}

 

print "</TABLE>";

?>

 

II nacin

<?php

//preimenovanje nizova u kratki stil promenljivih

$a= $_POST['d'];

$b= $_POST['p'];

 

//sortiranje u nerastucem poretku niza $b

//ako su poeni jednaki, sortirati po delu username - numericki

for($i=0;$i<count($b)-1;$i++)

  for($j=$i+1;$j<count($b);$j++)

     if ($b[$i]<$b[$j])

      { $pom=$b[$i]; $b[$i]=$b[$j]; $b[$j]=$pom;

        $pom=$a[$i]; $a[$i]=$a[$j]; $a[$j]=$pom;

      }

     else if (($b[$i]==$b[$j]) && (strnatcmp($a[$i],$a[$j]) >0 ) )

      { $pom=$b[$i]; $b[$i]=$b[$j]; $b[$j]=$pom;

        $pom=$a[$i]; $a[$i]=$a[$j]; $a[$j]=$pom;

      }

   

$c = array_combine($a, $b);

 

 

print "<TABLE BORDER=3 CELLSPACING=4 CELLPADDING=5>";

foreach ($c as $key => $val)

{

 echo "<TR><TD>$key</TD> <TD> $val</TD> </TR>";

}

 

print "</TABLE>";

?>

8. Napisati PHP skript koji će ispisati samo nazive domena u e-mail ADRESAMA svih studenata UNETIM preko formulara u tekst polje <input type="text" name="e[]" size="20" maxlength="30">.

<?php

 

for($i=0; $i < count($_POST['e']); $i++)

{

echo '<br>Domen u e-mail adresi '.($i+1). '. studenta je  ';

echo str_replace("@","",strstr($_POST['e'][$i], '@'));

}

?>

 

ALTERNATIVA srednjem stilu pod serverom ALAS je dugi stil, tj. umesto $_POST['e'] upotrebiti $HTTP_POST_VARS['e'].

ILI kratki stil (gde je dozvoljen): umesto $_POST['e'] upotrebiti $e

PAZNJA: mnogi studeti su uracunali i znak @ kao deo domena, tj. upotrebili samo poziv funkcije strstr, tj. strstr($_POST['e'][$i], '@') I time je znak @ postao 1.karakter rezultata.

 

3. Napisati PHP iskaz kojim se

c)     sa kraja niske "Zdravo, ja sam PHP skipt!             " uklanjaju beline i interpunkcijski znak

$s="Zdravo, ja sam PHP skript!          ";

echo rtrim($s, " \t!");

 

 

ILI

$s="Zdravo, ja sam PHP skript!          ";

echo chop($s, " \t!");

d)     U nisci dobijenoj pod a) pronalazi pozicija podniske "PHP" i prikazuje deo niske iza te podniske.

$s="Zdravo, ja sam PHP skript!          ";

 $s=(rtrim($s, " \t!");

echo substr(strstr($s, "PHP"),strlen("PHP"));

 

4. Napisati PHP skript koji će kreirati HTML dokument koji sadrži tabelu sa dve kolone.  U prvoj koloni su username studenta (formira se u obliku smer05indeks, npr. mi05123), a u drugoj koloni su njihovi poeni. Tabela treba da bude sortirana prema broju poena u neopadajućem poretku. Koristiti operator tačka (.) za nadovezivanje stringova. Podaci se unose preko formulara  u tekst polja:

  za username <input type="text" name="u[]" size="20" maxlength="30">

  za poene <input type="text" name="p[]" size="3" maxlength="3">

 

 

<?php

 

$username_niz= $_POST['u'];

$poeni_niz= $_POST['p'];

 

$c = array_combine($username_niz, $poeni_niz);

/* $c je asocijativni niz ciji indeksi su vrednosti niza u,

      a vrednosti odgovaraju vrednostima niza p.

Npr. ako $u[0]="mi05007", $p[0]=88, onda $c['mi05007']=88

 */

 

 

//sortiranje u neopadajucem poretku

asort($c);

 

//ispis tabele

 

print "<TABLE BORDER=3 CELLSPACING=4 CELLPADDING=5>";

 

foreach ($c as $key => $val)

{

 echo "<TR><TD>$key</TD> <TD> $val</TD> </TR>";

}

 

print "</TABLE>";

?>

 

 

 

 

8. Napisati PHP skript koji će ispisati samo nazive države u e-mail ADRESAMA svih studenata UNETIM preko formulara u tekst polje <input type="text" name="e[]" size="20" maxlength="30">. PRETPOSTAVITI  DA SVE ADRESE IMAJU OZNAKU DRZAVE.

 

<?php

 

for($i=0; $i < count($_POST['e']); $i++)

{

echo '<br>Drzava u e-mail adresi '.($i+1). '. studenta je  ';

echo str_replace(".","",strrchr($_POST['e'][$i], '.'));

}

 

?>

 

ALTERNATIVA srednjem stilu pod serverom ALAS je dugi stil, tj. umesto $_POST['e'] upotrebiti $HTTP_POST_VARS['e'].

ILI kratki stil (gde je dozvoljen): umesto $_POST['e'] upotrebiti $e

PAZNJA: mnogi studeti su uracunali i znak . kao deo oznake drzave, tj. upotrebili samo poziv funkcije strrchr, tj. strrchr($_POST['e'][$i], '.') I time je znak . postao 1.karakter rezultata.

 

3. Napisati PHP iskaz kojim se

e)     sa početka  niske "      'Zdravo, ja sam PHP skript!" uklanjaju beline i apostrof

$s="      'Zdravo, ja sam PHP skript!";

echo ltrim($s, "  \'");

 

f)     u nisci dobijenoj pod a) pronalazi pozicija podniske "PHP" i prikazuje deo niske ispred te podniske.

$s="Zdravo, ja sam PHP script!";

$pozicija =strpos($s, "PHP");

if ($pozicija=== false) {
echo "Nema podstringa";
} else {
echo substr($s,0,$pozicija-1);

}

3.  NIZ    I   ITEARCIJA foreach iskazom

<?php

$niz = array("prvi", "drugi", "treci");
 foreach ($niz as $key => $val) {
    echo "niz[" . $key . "] = " . $val . "\n";
}

?>