Avatar billede gat Nybegynder
22. december 2003 - 14:40 Der er 6 kommentarer og
1 løsning

Træk det rigtige ud af en streng

Hej

Jeg har brug for en funktion hvorved jeg kan trække det jeg ønsker ud af en streng og resten skal så ignoreres.

Jeg havde en forestilling om at det smarteste var at pakke noget rundt om strengen.

Set skal bruges i en scanner-system, og jeg skal derfor sikre mig at det kun er egne varer der bliver udført noget på.

eksempel:

jeg scanner en masse ting ind og hver varenummer bliver samlet i en tekstfil og sendt som en lang streng til en php side med jævne intervaller.

dvs en god streng vil se sådan ud i xx12345yyxx67890yy

som det kan ses har jeg pakket egne varenumre ind i xxVARENRyy for at man på denne måde kan pille det ud der staår mellem xx og yy og smide i et array. på denne måde håber jeg at kunne undgå at man kan scanne andre ting ind i systemet, da de forhåbentligt bare vil blive ignoreret.

en skidt streng kunne se sådan ud xx12345yy00000xx67890yy
her skal det der står mellem yy og xx (nullerne)selvfølgelig ignoreres....

Altså hvordan hiver jeg noget ud af en streng der står mellem xx yy. varenummeret er altid 5 tegn langt hvis det hjælper lidt

mvh
pl
Avatar billede bearhugx Nybegynder
22. december 2003 - 14:45 #1
hvis din streng så således ud
$varerStreng="37373,59595,59555,55555";

så ville du kunne få en array ved at bruge explode

$vareArray = explode("," , $varerStreng);
Avatar billede mufoxe Nybegynder
22. december 2003 - 14:45 #2
Hvis du brugte en slags separator tegn, kan du bruge explode() og få et array med værdierne ud.
Avatar billede erikjacobsen Ekspert
22. december 2003 - 14:46 #3
<?

  $v = "xx12345yy00000xx67890yy";

  preg_match_all('/xx(\d+)yy/',$v,$r);
  foreach ($r[1] as $p) {
    print "God nok vare: $p<br>\n";
  }

?>
Avatar billede bearhugx Nybegynder
22. december 2003 - 14:47 #4
du kan også bruge x'er i stedet for komma, hvis du hellere vil det--- Det handler bare om at have en separator

så hedder det
$str = "33333x44444x77777";
$vareArray = explode("x", $str);
($vareArray er så ["33333", "44444", "77777"])

/Søren
Avatar billede gat Nybegynder
22. december 2003 - 14:57 #5
hvis jeg bare bruger en separator vil det vel stadig kunne gå galt eks. 11111x22222xetellerandet33333x

> erikjacobsen
jeg tester lige dit
Avatar billede gat Nybegynder
22. december 2003 - 15:49 #6
Det virker perfekt mange tak for hjælpen erikjacobsen, smid et svar
Avatar billede erikjacobsen Ekspert
22. december 2003 - 17:18 #7
ok ;)
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