Dela upp en sträng i ord?

PHP

3 svar · 418 visningar · startad av lillebror

Medlem sedan apr. 20041 597 inlägg
Trådstart#1

Hur gör man för att dela upp en söksträng så att man får varje ord för sig (i en array) som man sedan kan stoppa in i en SQL-sats?

Strängen skulle kunna se ut så här:

"Flyg utbildning sidvindslandning"

En användare kan ju ha felaktigt matat in mellanrum enligt ovan. De får man väl försöka ta bort på något listigt sätt? Trim() kanske?

Medlem sedan mars 20032 667 inlägg
#2

Hur gör man för att dela upp en söksträng så att man får varje ord för sig (i en array)

Du använder funktionen explode(). :)

Se:
http://se2.php.net/manual/sv/function.explode.php

Medlem sedan apr. 20041 597 inlägg
#3

Jag misstänkte att det kunde vara så. Det jag klurade lite på var om en användare av misstag fått in några fler blanksteg mellan orden. Då kanske mönstret inte stämmer längre om man i funktionen explode() anger att den ska separera efter varje mellanslag?

Eller också kanske man kan köra med att bryta efter varje mellanslag och i slutändan kör man trim på samtliga ord?

Medlem sedan juli 20033 147 inlägg
#4

Ja, du skulle kunna lösa det såhär:

$string = "Jag känner spöket lajban";

$word = explode(" ", $string);

foreach ($word as $key => $value) {

   $word[$key] = trim($value);

   mysql_query("
   insert into
      table (
         word
      ) values (
         '$word[$key]'
      )
   ") or die(mysql_error());

}
300 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
157 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
137 ms — ändringar (db)