| Autor | Zpráva | ||
|---|---|---|---|
| Levelson Profil * |
#1 · Zasláno: 26. 11. 2008, 18:35:28
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 |
#2 · Zasláno: 26. 11. 2008, 18:48:01
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 * |
#3 · Zasláno: 26. 11. 2008, 18:54:35
Zatím další funkce nepotřebuji, takže to vyzkouším... dík moc
|
||
| Levelson Profil * |
#4 · Zasláno: 26. 11. 2008, 19:49:19
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 |
#5 · Zasláno: 26. 11. 2008, 19:52:15
file_get_contents
|
||
| yFang Profil |
#6 · Zasláno: 26. 11. 2008, 19:52:17 · Upravil/a: yFang
Levelson
file_get_contents() * Pozdě. |
||
| bohyn Profil |
#7 · Zasláno: 26. 11. 2008, 19:52:46
Levelson
file_get_contents() |
||
| Levelson Profil * |
#8 · Zasláno: 26. 11. 2008, 20:38:01
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 |
#9 · Zasláno: 26. 11. 2008, 20:42:54 · Upravil/a: Měsíček
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 * |
#10 · Zasláno: 26. 11. 2008, 20:51:04
Měsíček
Díky moc!!!, fachá to podle mích požadavků... |
||
| Měsíček Profil |
#11 · Zasláno: 26. 11. 2008, 20:56:18
Dík patří uživateli igamenir.
|
||
| Leo Profil |
#12 · Zasláno: 26. 11. 2008, 21:46:43
Pripadne pouzit fci fgetcsv, Leo
|
||
| igamenir Profil |
#13 · Zasláno: 26. 11. 2008, 22:43:54
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 * |
#14 · Zasláno: 26. 11. 2008, 22:49:25
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 |
#15 · Zasláno: 27. 11. 2008, 07:01:43
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; |
||
|
Časová prodleva: 17 let
|
|||
0