Autor Zpráva
quest
Profil
Dobry den chci se zeptat jestli se daji od sebe oddelit slova oddelena mezerou predavane POSTem..priklad:do pole nekdo napise "cau kamo" a ja potrebuji aby se mi ulozilo treba: $slovo1=cau; $slovo2=kamo; da se to nejak udelat? Moc dekuji za odpovedi..omlouvam se za to ze nepouzivam diakritiku ale pisu to na mobilu.
maks
Profil
quest:
explode
quest
Profil
maks:
Moc děkuju.
quest
Profil
Mám ještě jeden dotaz..nedalo by se nějak udělat to že by mi to zkontrolovalo jestli se nějaká z proměnných rovná třeba 10? Př: někdo napíše 8 0 12 10 a mně to vyhodi echo "ano"; a když se tam neobjeví 10 tak echo"ne"...ale nechci k tomu použít || ale chci aby mi to porovnalo těch 10 se všemi slovy automaticky.Děkuji za odpověďi.
DarkMeni
Profil
Tak můžeš použít vyhledávání v řetězci strpos(); nebo pro složitější vyhledávání preg_match(); s regulerními výrazy a nemusíš to rozdělovat na slova podle mezer

Takže třeba takto:
<?php
  $retezec = 'Ahoj kamo, 8 0 12 10';
  $hledam = '10';
  $pozice = strpos($retezec, $hledam);
  if($pozice !== false){
    echo 'Desítka tam je'; //Ale v tomto případě to projde i kdyby tam byla třeba 210, jestli chceš najít jen 10 s mezerama okolo tak musíš zkontrolovat ještě znaky před a za nalezenou pozicí nebo použít reg. výrazy
  }else{
    echo 'Desitka tam neni';
  }
  
  //přes reg. výraz:
  $nalezeno = preg_match('/ 10 /', $retezec);
  if($nalezeno){
    echo 'Desitka tam je';
  }else{
    echo 'Desitka tam neni';
  }
?>
juriad
Profil
DarkMeni:
A pro nalezení i krajních výskytů:
$pozice = strpos(" " . $retezec . " ", $hledam);
A obdobně pro regulární výrazy na řádku 12.
quest
Profil
Moc děkuju až přijdu domů tak vyzkouším..fakt rychlé reakce :-) moc dík
quest
Profil
Dalo by se tam ještě nějak přidat to že by to porovnávalo víc věcí samostatně?
PŘ:
$retezec = 'Ahoj kamo, 8 0 12 10'; 
 $nalezeno = preg_match('/ 10 nebo 8 nebo 1 /', $retezec);
to by byla shoda protože by to nalezlo alespoň jeden z hledaných výrazů.Dá se to nějak udělat?
Asi by se to dalo udělat přes cyklus while ale to už si to rovnou můžu rozepsat a tak hledám nejjednodušší verzi.
Děkuji za odpovědi.
juriad
Profil
Ano, jde to. Asi nějak takto:
$retezec = 'Ahoj kamo, 8 0 12 10';
# regex obsahuje v závorce svislítkem oddělené možnosti
$nalezeno = preg_match_all('/ (10|8|1) /', ' ' .$retezec . ' ', $vysledky);
echo "nalezeno vyledku: ", $nalezeno, "\n";
if($nalezeno > 0) {
  # pouzijeme $vysledky[1]: zajima nas jen obsah zavorky, ne cely nalezeny podretezec
  foreach($vysledky[1] as $index => $hodnota) {
    echo ($index + 1), ". vysledek: ", $hodnota, "\n";
  }
}
quest
Profil
Děkuji za skvělé odpovědi.Problém vyřešen.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: