Avatar billede drc_666 Nybegynder
05. februar 2005 - 22:17 Der er 5 kommentarer og
1 løsning

dele komma formateret streng op som indeholder komma i felterne

jeg skal have delt følgene streng op

"B7","03-079","107X43","Philips","Monitor 17" CRT 107X43 Design Line","Max.:1280x1024, Anb.: 1024x768, 88Hz",1125.00,7.00,0.00,310120051321

problemmet er bare at indholdet i felt 7 indeholder komma'er og det skaber problemer når jeg bruger følgene

$pieces = explode(",", $streng);
echo $pieces[0];
echo $pieces[1];
echo $pieces[2];
echo $pieces[3];
osv.

er der nogen som kan finde en måde at dele strengen op på
Avatar billede jakobdo Ekspert
05. februar 2005 - 22:42 #1
Kunne du evt dele dem op med "," i stedet for kun , ?
Avatar billede drc_666 Nybegynder
05. februar 2005 - 22:45 #2
nej jeg får sendt en masse strenge i en fil fra min leverandør så jeg har ikke nogen kontrol over hvordan strengen ser ud
Avatar billede hmortensen Nybegynder
05. februar 2005 - 23:58 #3
Som du viser i dit eksempel, er "," unik.

Der bliver nødt til at være en unik seperator.
Avatar billede drc_666 Nybegynder
12. februar 2005 - 22:40 #4
fant en anden løsning
Avatar billede jakobdo Ekspert
14. februar 2005 - 08:44 #5
Og den var?
Avatar billede drc_666 Nybegynder
14. februar 2005 - 14:27 #6
det er ikke kønt men det virker efter hensigten
den finder forekomster af ", og laver en substreng af det forgående tekst ved hjælp af $offset og der efter laver den et ny offset med ny placering, der efter bliver substrengen sat sammen med , indtil der ikke er flere ", hvorefter resten bliver tilføjet. Ind i mellem er der en masse tilpasning


//$line er den streng som bliver behandlet

$offset = 1;
$new_line = "";
for($ii=0; $ii<substr_count($line, "\","); $ii++) {
    $pos = strpos($line, "\",", $offset);
    if($ii == 0) {
        $length = $pos - $offset;
    $start = $offset;
    } else {   
    $length = $pos - $offset - 2;
    $start = $offset + 2;
    }
    $sub_string = substr($line, $start, $length);
    $new_sub_string = str_replace(",", "&#44;", $sub_string);
    $new_line .= $new_sub_string.",";
$offset = $pos;
$offset++;
}
$length = strlen($line) - $offset;
$new_line .= substr($line, $offset+1, $length-1);

$pieces = explode(",", $new_line);
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