Avatar billede vels Nybegynder
31. august 2004 - 03:28 Der er 16 kommentarer og
1 løsning

Del linie op

Hej

Jeg er igang med at lave noget så man kan copy paste noget fra et program over i et text area også skal php lege med det :)

Formatet jeg teksten kommer over i er:

2318      Thomas Jensen                  72      2388        7        2,93

Som det ses er det ikke komma mellem data :( Kan man få php til splitte linien op i 6 så man kan bruge de 6 værdier som $val1 $val2 osv (det skal siges der er flere linier end 1 der copy pastes i tekst feltet?
Avatar billede vels Nybegynder
31. august 2004 - 04:14 #1
har næsten selv fundet løsningen:
<?php

$pizza  = "2318      Thomas Vels Jensen                  72      2388        7        2,93";

$hest= preg_split("/\s+/", $pizza);

$size = count($hest);


$felt6 = $size - 1;
$felt5 = $size - 2;
$felt4 = $size - 3;
$felt3 = $size - 4;

$feltt6 = $hest[$felt6];
$feltt5 = $hest[$felt5];
$feltt4 = $hest[$felt4];
$feltt3 = $hest[$felt3];

$navn=$hest[1];

echo"$hest[0]<br>
$feltt6 <br> $feltt5 <br> $feltt4 <br> $feltt3 <br> $feltt2 <br>";
?>
Avatar billede vels Nybegynder
31. august 2004 - 04:19 #2
Har fået den til at skille det fra hinanden og smide det i et array, men hvis navnet kun er Jens Hansen f.eks. så er der jo lidt af et problem. Men ved at bruge: $felt6 = $size - 1;
$felt5 = $size - 2;
$felt4 = $size - 3;
$felt3 = $size - 4;

$feltt6 = $hest[$felt6];
$feltt5 = $hest[$felt5];
$feltt4 = $hest[$felt4];
$feltt3 = $hest[$felt3];

Så skulle jeg kunne få de 4 tal til sidst uanset hvad navnet er, nu er mit problem hvordan får jeg den lige til at vise navnet hvis f.eks. er Jens Hansen eller Jens Ole Hansen, det er noget med at vi ved at fra plads[0]  $size -4 det er navnet, men jeg kan ik lige oversku hvordan denne funktion skal laves
Avatar billede vels Nybegynder
31. august 2004 - 04:23 #3
Et andet problem:
2318      Thomas Vels Jensen                  72      2388        7        2,93
2478      Søren Hansen                  52      288        5        5,73
2347      Jesper Jensen                  40      3288        1        1,02

Når dataen er sådan her, hvordan får jeg den så lige til at fatte der er et linie skift så den skal køre næste linie igennem? og ikke tror det er en linie det hele
Avatar billede dennismp Nybegynder
31. august 2004 - 09:50 #4
Hvad med dette?

$hest= preg_split("/(\s{2,}|\r?\n)/", $pizza);

for($i=0;$i<count($hest);$i++) {
    if($i%6==0)
        print "<br>Ny række: ";
    print $hest[$i] . ' ';
}
Avatar billede vels Nybegynder
31. august 2004 - 11:48 #5
COOL det er jo lidt nemmere, end min slam kode he

Det eneste er at jeg skal ik ha værdierne til at stå på en linie, men de skal sættes ind i en tabel (html tabel) hvordan er det lige jeg får gjord det... sådan at jeg har $hest[1] $hest [2] osv som værdier... når det er $i der er?
Avatar billede dennismp Nybegynder
31. august 2004 - 11:58 #6
prøv med:

$i-6 er det første felt, $i-5 er det næste .. osv

for($i=0;$i<count($hest)+1;$i++) {
    if($i%6==0 && $i > 0)
        print "<br>test:" . $hest[($i-6)] . ',' . $hest[($i-5)].'<br>';
}
Avatar billede dennismp Nybegynder
31. august 2004 - 12:06 #7
Man kunne også bruge preg_match_all og så matche en hel linje ad gangen istedet for at dele op i felter og så "samle" det i rækker selv.

Men begge dele virker lige godt :)
Avatar billede vels Nybegynder
31. august 2004 - 14:07 #8
<?php


$hest1= preg_split("/(\s{2,}|\r?\n)/", $medarbejder);
for($i=0;$i<count($hest1)+1;$i++) {
    if($i%6==0 && $i > 0)
       


echo"<table width='404' border='1' cellspacing='0' cellpadding='0'>
  <tr>
    <td width='400'><table width='400' border='0' cellspacing='0' cellpadding='0'>
      <tr>
        <td width='75'><strong>Uge</strong></td>
        <td width='58'>&nbsp;</td>
        <td width='46'>&nbsp;</td>
        <td width='34'>&nbsp;</td>
        <td width='119'>&nbsp;</td>
        <td width='68'>&nbsp;</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>Fejl % </td>
      </tr>
      <tr bgcolor='#CCCCCC'>
        <td>xx1</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>XX2</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr bgcolor='#CCCCCC'>
        <td>XX3</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>XX4</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr bgcolor='#CCCCCC'>
        <td>XX5</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td colspan='3'>XY</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td><div align='center'>Y1</div></td>
        <td><div align='center'>Y2</div></td>
        <td><div align='center'>Y3</div></td>
        <td><div align='center'>Y4</div></td>
        <td><div align='center'>Y5</div></td>
        <td><div align='center'>Y6</div></td>
      </tr>
      <tr>";
        echo "<td>" . $hest1[($i-6)] .' </td>';
        echo "<td>" . $hest1[($i-5)] .' </td>';
        echo "<td>"  . $hest1[($i-4)] .' </td>';
        echo "<td>"  . $hest1[($i-3)] .' </td>';
        echo "<td>"  . $hest1[($i-2)] .' </td>';
        echo "<td>"  . $hest1[($i-1)] .' </td>';
 
      echo"</tr>
    </table></td>
  </tr>
</table>";

}



?>
Avatar billede vels Nybegynder
31. august 2004 - 14:08 #9
Sender data fra en side til den ovenfor, men den viser det i tabellen + den viser også dataen oven for hver tabel ????
Avatar billede vels Nybegynder
31. august 2004 - 14:45 #10
har selv fixet det :)
Avatar billede vels Nybegynder
31. august 2004 - 14:47 #11
smider du et svar?

evt. hvordan laver man sådan at der er 2 tabeller ved siden af hinanden? altså <tabel></tabel><tabel></tabel><br>

altså 2 tabeller ved siden af hinnanden, og de næste 2 neden under osv.
Avatar billede dennismp Nybegynder
31. august 2004 - 15:03 #12
Jeg ved det ikke. Jeg er ikke så god til HTML. .. Udmiddlebart kan du jo pakke de to tables ind i en 3..

<table>
<tr>
  <td>table 1 her</td>
  <td>table 2 her</td>
</tr>
<tr>
  <td>table 3 her</td>
  <td>table 4 her</td>
</tr>
</table>

Men det findes nok en mere elegant måde; Sikkert noget med CSS. :)
Avatar billede vels Nybegynder
31. august 2004 - 15:46 #13
hvordan laver jeg sådan når den har kørt 7 linie igennem af rå dataen så skal den komme med et <br> ?
Avatar billede dennismp Nybegynder
31. august 2004 - 15:56 #14
for($i=0;$i<count($hest)+1;$i++) {
    if($i%6==0 && $i > 0) {
        print "<br>test:" . $hest[($i-6)] . ',' . $hest[($i-5)].'<br>';

        $linje = $i / 6;

        if( $linje == 7 ) print "<br>";
    }
}
Avatar billede dennismp Nybegynder
31. august 2004 - 15:57 #15
hvis det er for hver 7. linje:


if( ($linje % 7) == 0 ) print "<br>";
Avatar billede vels Nybegynder
31. august 2004 - 16:05 #16
den laver kun <br> efter de første 7 ikke efter når 14 :(
Avatar billede vels Nybegynder
31. august 2004 - 16:06 #17
oki prøver lige det
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