Autor Zpráva
Levelson
Profil *
Potřeboval bych z textového souboru na serveru, který obsahuje v řádcích tato data:
1# nazev jedna
2# nazev dve
3# nazev tri
...

exportovat data automaticky do html souboru v této podobě:

<table>
 <tr>
  <td>1</td>
  <td>nazev jedna</td>
 </tr>
 <tr>
  <td>2</td>
  <td>nazev dve</td>
 </tr>
 ...


Neumím zapsat funkci, která by podle čísel v řádku (txt) roztřídila data a odstranila zároveň znak #
(Do databáze to nechci zavádět...) . dík za tipy
igamenir
Profil
pokud to nechceš s více funkcemi a možnostmi, tak klidně takhle nějak:
$file = file_get_content('soubor.txt');
echo '<table>';
foreach($file as $line) echo '<tr><td>'.substr($line, 0, strpos($line, '#')).'</td><td>'.substr($line, strpos($line, '#')+1).'</td></tr>';
echo '</table>';
Levelson
Profil *
Zatím další funkce nepotřebuji, takže to vyzkouším... dík moc
Levelson
Profil *
To igamenir:
Tak nevím co dělám špatně, ale podle tvého vzoru to v PHP 5 nejede, viz:
Fatal error: Call to undefined function file_get_content() in... ???
Mastodont
Profil
file_get_contents
yFang
Profil
Levelson
file_get_contents()


* Pozdě.
bohyn
Profil
Levelson
file_get_contents()
Levelson
Profil *
jsem zelenáč tak to bude se mnou složitější :-( předchozí renonc opraven, ale teď to hází chybu na dalším řádku... asi by měla být definována proměnná $line , nevím... viz:
Warning: Invalid argument supplied for foreach() in /...
Měsíček
Profil
Reaguji na Levelsona:

"Warning: Invalid argument supplied for foreach() in /..."

Již podle hlášky můžeš tušit, že foreach() nedostává jako argument pole.

Řešením je změnit file_get_contents() na file() - snad.

Zkus třeba tohle:
<?php
  $file = file('soubor.txt');
  echo '<table border=1>';
    foreach ($file as $line) {
      echo '<tr><td>'.substr($line, 0, strpos($line, '#'));
      echo '</td><td>'.substr($line, strpos($line, '#')+1).'</td></tr>';
    }
  echo '</table>';
?>
Levelson
Profil *
Měsíček
Díky moc!!!, fachá to podle mích požadavků...
Měsíček
Profil
Dík patří uživateli igamenir.
Leo
Profil
Pripadne pouzit fci fgetcsv, Leo
igamenir
Profil
Dik za opravu, obvykle pouzivam file_get_contents protoze to pak upravuju pres regularni replaci s multiline, coz je tady zbytecny i kdyz by to taky slo
Levelson
Profil *
Diky igamenir :) akorát to do kódu přihazuje jeden prázdný řádek navíc, já bych spíš potřeboval jeden sloupeček navíc (vpravo), ale neumím ho přidat. Takhle vypadá výsledek html:
<table boreder="1">
 <tr>
  <td>1</td>
  <td>nazev prvni</td>
 </tr>
 <tr>
  <td></td>
  <td></td>
 </tr>
 <tr>
  <td>2</td>
  <td>nazev druhy</td></tr>
 <tr>
  <td></td>
  <td></td>
 </tr>
 <tr>
  <td>3</td>
 <td>nazev treti</td>
 </tr>
</table>
igamenir
Profil
to budeš mít chybu v tom souboru někde, ale můžeš za
foreach ($file as $line) {

přidat
$line = trim($line);
if (empty($line)) continue;

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0