Avatar billede bahn Nybegynder
14. november 2015 - 12:22 Der er 6 kommentarer og
1 løsning

preg_match hjælp

preg_match("/.*?,\d*?,.*[\r\n|\r|\n]*/", $_POST['kommasep'], $output_array);

foreach ($output_array as $val)
    {
            echo "<hr>val: ".$val;
            list ($nummer, $antal, $til) = explode(',', $val);
            echo "$al<br>Antal: $antal Nummer: $nummer til: $til";
            $al++;
    }


jeg vil gerne have
ex dette kontrolleret og indsat i et array, men det virker ikke som forventent

460664,1,web16022
460662,1,web16022
1234etvarenummer,12,tilogevtetnr


ovenstående giver kun:

val: 460664,1,web16022 1
Antal: 1 Nummer: 460664 til: web16022

kan i hjælpe mig?
Avatar billede jakobdo Ekspert
14. november 2015 - 17:36 #1
Hvordan ser dit input ud?
Og hvad ønsker du som output?
Avatar billede bahn Nybegynder
14. november 2015 - 19:01 #2
460664,1,web16022
460662,1,web16022
1234etvarenummer,12,tilogevtetnr

er mit input

og jeg skal have de 3 rækker sat ind i en database
Avatar billede jakobdo Ekspert
15. november 2015 - 11:33 #3
Har du overvejet at læse filen via:

file?

$lines = file("din_fil.txt");

foreach($lines as $line){
  echo '<pre>';
  print_r(explode(",", $line));
  echo '</pre>';
}
Avatar billede bahn Nybegynder
16. november 2015 - 09:13 #4
Ja for det kan jeg bedre finde ud af. :-)

men det giver ikke mening til det behov jeg skal løse.

og det skal stadig tjekkes om det har det rigtige format.
Avatar billede jakobdo Ekspert
16. november 2015 - 09:25 #5
Jeg forstår dog ikke hvad der er korrekt format og forkert.
Jeg kan ikke umiddelbart se et mønster i de 3 linjer:

460664,1,web16022
460662,1,web16022
1234etvarenummer,12,tilogevtetnr
Avatar billede bahn Nybegynder
16. november 2015 - 11:48 #6
mønsteret er har:
preg_match("/.*?,\d*?,.*[\r\n|\r|\n]*/", $_POST['kommasep'], $output_array);


jeg laver en anden løsning har jeg overfører dem på en anden og mere direkte måde.
Avatar billede jakobdo Ekspert
16. november 2015 - 11:58 #7
I mit hoved giver følgende kode præcis samme løsning:

$file = "din_fil.txt";

$lines = file($file);

foreach($lines as $line){
  $parts = explode(',', $line);

  //Har vi korrekt antal dele?
  if(count($parts) != 3){
    echo "ERROR - Noget galt med linje: " . $line
  }else{
    if(is_numeric($parts[1])){
      //INSERT INTO DATABASE
      $nummer = $parts[0];
      $vare = $parts[1];
      $til = $parts[2];
    }
  }
}
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

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