Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: tekstitiedosto ongelma

Sivun loppuun

kotsku [25.04.2007 13:20:40]

#

moi!!
ois tekstitiedoston kans ongelma... miten saisin tekstitiedostosta tiedot taulukkoon

eli tekstitiedostosta pätkä:
VALM­KOO­DI;­TUO­TE­KOO­DI;­TUO­TE;­ME­NEK­KI­TUO­TE;­HIN­TAALV0;­VA­RASTO;
SEURAA­VA­E­RA;WWW;­HIN­TAALV;­VAL­MIS­TA­JA;­TUO­TE­RYH­MA;­LAA­TIK­KO­KOKO;
LISÄTIEDOT

tiedost on noin ; eroteltuna, ja mun pitäis saada ne taulukkoon siten et

koodi ois ulospäin jotensakki näin:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="fi">
<head>
  <meta content="text/html; charset=ISO-8859-1"
 http-equiv="content-type">
  <title></title>
  <head>
<body dir="ltr">
<br>
<table border="0" cellpadding="2" cellspacing="2"
 width="100%">
  <tbody>
    <tr>
      <td>Valmkoodi</td>
      <td>tuotekoodi</td>
      <td>tuote</td>
      <td>menekkituote</td>
      <td>hintaalv0</td>
      <td>varasto</td>
    </tr>
    <tr>
      <td>00003590257</td>
      <td>eet30558jf</td>
      <td>testi</td>
      <td>on</td>
      <td>587&euro;</td>
      <td>15 kpl</td>
    </tr>
    <tr>
      <td>350098502</td>
      <td>test325er</td>
      <td>testi2</td>
      <td>ei</td>
      <td>645&euro;</td>
      <td>57 kpl</td>
    </tr>
  </tbody>
</table>
</body>
</html>

tossa ois niinku miten pitäis saada ja mä oon koittanu saada mut ei oikee tuu nyt mitään tosta hommasta....

kayttaja-2791 [25.04.2007 13:56:19]

#

Regular Expressioneilla, eli säännöllisillä lausekkeilla onnistuu. Opas aiheesta löytyy putkasta.

Tuossa vielä valmis regexp:

/<td>([^<]*)<\/td>/

EgeTheGod [25.04.2007 14:04:24]

#

Suosittelen opettelemaan php:tä. Helppo oppia. Opas löytyy näiltä sivuilta.

kotsku [25.04.2007 14:55:05]

#

regexp ei toiminut halutulla tavalla, joten miten minä sillä saan about. pari miljoonaa merkkiä pitkän tiedoston jaoteltua taulukoksi....????

kayttaja-2791 [25.04.2007 15:45:00]

#

Ahaa, ymmärsin väärin kysymyksesi, kun luin sen niin hätäisesti. Eli tuollainen pitäisi saada generoitua...

Tuollaisen ; erotellut tekstitiedon saa pätkittyä php:llä explode-funktiolla. PHP:n manuaalista löytyy aika tyhjentävät esimerkit:
https://www.php.net/

Magic Eye [26.04.2007 17:08:57]

#

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="fi">
<head>
  <meta content="text/html; charset=ISO-8859-1"
 http-equiv="content-type">
  <title></title>
  <head>
<body dir="ltr">
<br>
<table border="0" cellpadding="2" cellspacing="2"
 width="100%">
  <tbody>
    <tr>
      <td>Valmkoodi</td>
      <td>tuotekoodi</td>
      <td>tuote</td>
      <td>menekkituote</td>
      <td>hintaalv0</td>
      <td>varasto</td>
    </tr><?php

    $tiedosto = file (   "tiedosto.txt"   );

    foreach (   $tiedosto as $rivi   )   {

        $tiedot = explode (   ";", $tiedosto   );
?>
    <tr>
      <td><?= $tiedot[0]; ?></td>
      <td><?= $tiedot[1]; ?></td>
      <td><?= $tiedot[2]; ?></td>
      <td><?= $tiedot[3]; ?></td>
      <td><?= $tiedot[4]; ?></td>
      <td><?= $tiedot[5]; ?></td>
    </tr>
<? } ?>
  </tbody>
</table>
</body>
</html>

kotsku [26.04.2007 21:49:06]

#

Magig eye:n koodi näyttäs hyvältä muuten, mut huomasin virheen, eli eikö toi koodi kuuluis olla näin(huom.. tässä vaan koodin loppuosa):

<?php

    $tiedosto = file (   "tiedosto.txt"   );

    foreach (   $tiedosto as $rivi   )   {

        $tiedot = explode (   ";", $tiedosto   );
}
?>
    <tr>
      <td><?= $tiedot[0]; ?></td>
      <td><?= $tiedot[1]; ?></td>
      <td><?= $tiedot[2]; ?></td>
      <td><?= $tiedot[3]; ?></td>
      <td><?= $tiedot[4]; ?></td>
      <td><?= $tiedot[5]; ?></td>
    </tr>
  </tbody>
</table>
</body>
</html>

ja sit tossa tulee virheilmoitus:

Notice: Array to string conversion in D:\www\testi\hinnasto\hinnasto.php on line 26

Notice: Array to string conversion in D:\www\testi\hinnasto\hinnasto.php on line 26

Notice: Array to string conversion in D:\www\testi\hinnasto\hinnasto.php on line 26

Notice: Array to string conversion in D:\www\testi\hinnasto\hinnasto.php on line 26

Notice: Array to string conversion in D:\www\testi\hinnasto\hinnasto.php on line 26

Notice: Array to string conversion in D:\www\testi\hinnasto\hinnasto.php on line 26

Notice: Array to string conversion in D:\www\testi\hinnasto\hinnasto.php on line 26
Valmkoodi 	tuotekoodi 	tuote 	menekkituote 	hintaalv0 	varasto
Array
Notice: Undefined offset: 1 in D:\www\testi\hinnasto\hinnasto.php on line 31

Notice: Undefined offset: 2 in D:\www\testi\hinnasto\hinnasto.php on line 32

Notice: Undefined offset: 3 in D:\www\testi\hinnasto\hinnasto.php on line 33

Notice: Undefined offset: 4 in D:\www\testi\hinnasto\hinnasto.php on line 34

Notice: Undefined offset: 5 in D:\www\testi\hinnasto\hinnasto.php on line 35

ajv [26.04.2007 22:07:53]

#

Kyllä tuo Magic Eyen koodi oli ihan oikein ja sinun versiosi siitä väärin...

peg [27.04.2007 01:55:02]

#

<? } ?>

Magic Eye [27.04.2007 07:27:56]

#

Sori, tein nopeasti, oikea:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="fi">
<head>
  <meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
  <title></title>
  <head>
<body dir="ltr">
<br>
<table border="0" cellpadding="2" cellspacing="2"
width="100%">
  <tbody>
    <tr>
      <td>Valmkoodi</td>
      <td>tuotekoodi</td>
      <td>tuote</td>
      <td>menekkituote</td>
      <td>hintaalv0</td>
      <td>varasto</td>
    </tr><?php

    $tiedosto = file (   "tiedosto.txt"   );

    foreach (   $tiedosto as $rivi   )   {

        $tiedot = explode (   ";", $rivi   );
?>
    <tr>
      <td><?= $tiedot[0]; ?></td>
      <td><?= $tiedot[1]; ?></td>
      <td><?= $tiedot[2]; ?></td>
      <td><?= $tiedot[3]; ?></td>
      <td><?= $tiedot[4]; ?></td>
      <td><?= $tiedot[5]; ?></td>
    </tr>
<? } ?>
  </tbody>
</table>
</body>
</html>

kotsku [27.04.2007 13:14:45]

#

<? } ?>

siis pitääkö toi koodiki olla tossa ku se heittää siitä erroria....????

ajv [27.04.2007 13:20:38]

#

Sul ei varmaan ole short_tags päällä sun php:ssä, joten muuta

<?

muotoon

<?php

ja

<?= $tiedot[x]; ?>

muotoon

<?php echo $tiedot[x]; ?>

Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta