Avatar billede mesteren_selv Nybegynder
22. februar 2005 - 14:00 Der er 13 kommentarer og
1 løsning

Vælge tal ud og gemme i db

Hey folkens...
Jeg skal på en eller anden måde have mit script til at læse hvilke tegn i en sætning der er tal, og så skrive dem ind i en database...
I delphi ved jeg at man kan lave en for-løkke fra 1 til length(tekst), altså tekstens længde, og så tjekke tegnene en for en og lægge dem i en variabel hvis det er tal.

Kan man gøre noget lignende i php?

På forhånd tak, Mesteren...
Avatar billede jakobdo Ekspert
22. februar 2005 - 14:07 #1
Du kunne bruge regexp?
Avatar billede jakobdo Ekspert
22. februar 2005 - 14:08 #2
if (preg_match('/\\d+/', $saetning, $matches))
{
  print_r($matches);
  //Indsæt i DB
}
Avatar billede mesteren_selv Nybegynder
22. februar 2005 - 14:13 #3
Jamen hvordan fungerer for-løkken... Jeg forstår ikke rigtig scriptet!?
Avatar billede mesteren_selv Nybegynder
22. februar 2005 - 14:18 #4
Ahaaaa... Jeg læste lige lidt om det inde på www.php.net, og forstår det væsentligt bedre... Men hvad betyder '/\\d+/'?
Avatar billede sone Nybegynder
22. februar 2005 - 14:20 #5
for ($i=0; $i<strlen($text); $i++) {
  if ( is_numeric(substr($text, $i, 0)) ) {
    //det er et tal...
  }
}
Avatar billede Slettet bruger
22. februar 2005 - 14:28 #6
http://weblogtoolscollection.com/regex/regex.php

her kan du læse om regular expressions
Avatar billede mesteren_selv Nybegynder
22. februar 2005 - 14:29 #7
Sorry Sone.. Jeg vælge at forfølge den anden løsning...
Avatar billede sone Nybegynder
22. februar 2005 - 14:32 #8
ok
Avatar billede mesteren_selv Nybegynder
22. februar 2005 - 14:39 #9
Jeg kan altså stadig ikke få det til at virke... er du sikker på at det er lige præcis '/\\d+/' der skal stå... Betyder det ikke noget i stil med at der skal være en eller flere d'er?
Avatar billede jakobdo Ekspert
22. februar 2005 - 14:46 #10
\d = tal
+ betyder 1 eller flere..

Jeg havde en fejl før.
Det skal være preg_match_all

Se evt dette script:

<?php

$saetning = "dsaiod9023ud023u0dawidh280haqfh38902hfasihf803hfhafh803hh";

if(preg_match_all('/\\d+/', $saetning,$matches) != false)
{
    echo "<pre>";
    print_r($matches);
    echo "</pre>";
}

?>
Avatar billede mesteren_selv Nybegynder
22. februar 2005 - 14:52 #11
Jakobdo... point?
Avatar billede mesteren_selv Nybegynder
22. februar 2005 - 14:54 #12
Jeg har fået det til at virke... Bare med preg_match... Hvad er forskellen? Tak for hjælpen i hvert fald!
Avatar billede jakobdo Ekspert
22. februar 2005 - 20:39 #13
Svar...
preg_match giver dig kun det første tal i en sætning.
preg_match_all giver dig alle tal i en sætning.
Avatar billede mesteren_selv Nybegynder
23. februar 2005 - 14:44 #14
Okay... Jeg bruger preg_match_all, så... Taktak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester