Weboldal készítés, internetes alkalmazások fejlesztése

szöveg, sztring darabolása - php

Weboldalon működő kereső akkor működik jól, ha a beírt kifejezés egészére és a kifejezés minden egyes szavára is keres. A felhasználó által beírt kifejezést így darabolnunk kell.

A darabolást egy előre meghatározott karakter mentén kell megoldani:

Kereső kifejezés: "szőkítő sampon"

Keresni kell tehát a "szőkítő sampon"-ra, a "szőkítő"-re és a "sampon"-ra is.

Először is szűrjük meg a bevitt keresőszavakat:

if (isset ($_POST['kulcsszo']))
{
  //töröljök azokat a karaktereket, amik nem betűk, vagy számok:
  $keresesi_kulcsszo = preg_replace('/[^a-zA-Z0-9_\-\.]/i',' ',$_POST['kulcsszo']);
  //szedjük le a keresőkifejezés elejéről és végéről a szóközöket:
  $keresesi_kulcsszo = trim($keresesi_kulcsszo);
  //jöhet a sql injekció elleni alapvédelem:
  $keresesi_kulcsszo = mysqli_real_escape_string($mysql,$keresesi_kulcsszo);
}

Kezdjük a darabolást:

A darabolást az explode() függvénnyel végezzük, melynek felépítése:

explode(' ', $keresesi_kulcsszo) - a zárójelben lévő első érték a darabolás alapja (szóköz), a második érték a darabolandó változó. Ennél a példánál a szóköz határozza meg a darabolást.

//számoljuk meg hány szóból áll a szöveg
$szavak_szama = count(explode(' ', $keresesi_kulcsszo));
if ($szavak_szama > 1)
{
  //jöhet a darabolás! A szöveg darabok egy tömbbe kerülnek szép sorban egymás után
  $szavak = explode(' ', $keresesi_kulcsszo);
  //a tömb elemeire a $szamlalo nevű változó mutat majd
  $szamlalo = 0;
  for ($keres=0;$keres<$szavak_szama;$keres++)
  {
    $keresoszo_darab = trim($szavak[$szamlalo]);
    echo 'Keresőszó: "'.$keresoszo_darab.'";
  }
}