Autor | Zpráva | ||
---|---|---|---|
Šéva Profil |
#1 · Zasláno: 10. 9. 2012, 09:23:31
Zdravím,
mám soubor changelog.txt, ve kterém je zhruba takovýto obsah: 10.9.2012;Test2;Test2 komentováni novinek.# 10.9.2012;Test;Test komentováni novinek.# a takovýmto kódem to čtu $soubor=fopen("changelog.txt","r"); $text=fread($soubor,filesize("changelog.txt")); $text=explode("#",$text); for($a=0;$a<count($text)-1;$a++) { if(substr($text[$a],0,2)!="//") { $zmeny=explode(";",$text[$a]); echo "<fieldset><legend><b>$zmeny[1]</b> <span style='font-size:14px'><i>$zmeny[0]</i></span></legend><br>$zmeny[2]<br></fieldset><br><br>"; } $zmeny=array(); } fclose($soubor); problém je, že když // dám před druhý a nižší řádek, tak to ten řádek stejně vypíše, bere to v potaz pouze první řádek a ostatní řádky se vypíší i přesto, že nesplňují tu podmínku. V čem by mohl být problém? Do DB to dávat nechci. Díky |
||
Jan Tvrdík Profil |
Šéva:
Protože řádky rozděluješ pomocí znaku # namísto konce řádků, tak ti tam ten konec řádku zůstává. Nejjednodušší bude každý řádek ošetřit funkci trim.
$obsah = file_get_contents('changelog.txt'); $radky = explode("#", $obsah); foreach ($radky as $radek) { $radek = trim($radek); if (substr($radek, 0, 2) !== '//') { $zmeny = explode(';', $radek); echo "<fieldset><legend><b>$zmeny[1]</b> <span style='font-size:14px'><i>$zmeny[0]</i></span></legend><br>$zmeny[2]<br></fieldset><br><br>"; } } |
||
Šéva Profil |
#3 · Zasláno: 10. 9. 2012, 09:38:42
Jan Tvrdík:
tj ono, díky. Myslel jsem si, že i když vymažu všechny prázdné znaky, tak že to bude chodit...omyl. jinak rozdělování řádků mám tímto způsobem udělané z toho důvodu, aby když je delší text, tak aby se mohl psát do více řádků. |
||
Časová prodleva: 12 let
|
0