Stránka: 1 z 1
| [ Príspevkov: 22 ] | |
Autor | Správa |
---|
Registrovaný: 20.11.07 Prihlásený: 18.01.09 Príspevky: 2929 Témy: 116 | 116 |
Takze mam dalsi problem s mnews vzhladom na to ze to nepracuje s DB ale s txt subormi
Takze: mam zlozku v ktorej sa nachadza txt subor napr.
Kód: Uz to ide S-MTB-T|1|1|3|1|||<p>drtdržýťráývgfhftýrtývfthžýáftgý</p>
bohuzial mena suborov su oznacene neako kodovane neni to ani datum ani nic podobneho takze ja chcem v tom subore najst prve | zistim kolkate je a potom vsetko do neho vypisem bo to je vzdy nazov tej novinky a potrebujem to dat do cyklu cize ale prve musi byt vzdy txt subor ktory je v tom adresari posledny please mi povedzte ze ci to je dobre riesenie abo neako inak to urobit a ako spravit to s tym cyklom abo posledny subor bol vlastne prvy Dik
a inak som sa chcel opytat mylana lenze on neako neodpisuje na tensvoj mail takze to davam sem
|
|
Registrovaný: 21.02.07 Prihlásený: 21.02.10 Príspevky: 3984 Témy: 96 | 96 |
to nie je problém s MNews ... Takže: prečítaš adresár uložíš do poľa, pole budeš čítať odzadu - otvoríš každý súbor a cez explode vyberieš nadpis ...
adresáre sa tu riešili, myslím že ja som sa pýtal
pole by si mal vedieť
súbory - fopen, fread
|
|
Registrovaný: 20.11.07 Prihlásený: 18.01.09 Príspevky: 2929 Témy: 116 | 116 |
mno teda vsetkemu asi rozumiem okrem precitanie pola odzadu to sa ako robi?
|
|
Registrovaný: 20.10.08 Prihlásený: 21.06.22 Príspevky: 2602 Témy: 31 | 31 Bydlisko: Bratislava |
Tominator píše: pole budeš čítať odzadu - otvoríš každý súbor a cez explode vyberieš nadpis ... Preco odzadu? Nie je to jedno ako pristupis k jednotlivym prvkom pola? dadmtb píše: mno teda vsetkemu asi rozumiem okrem precitanie pola odzadu to sa ako robi?
Asi mal na mysli:
Kód: $max = count($pole); for( $i = $max; $i > 0; $i-- ){ bla bla $pole[$i];}
_________________ Desktop: iMac 21" CPU: i5 2.7GHz RAM: 4 GB DDR3 1333MHz GPU: AMD Radeon HD 6770M 512MB RAM HDD: 1TB 7200 rpm OS: Mac OS X Lion Desktop: CPU: AMD Phenom II x4 BE 955 3.2@3.6GHz 1.35@1.30V CPU Cooler: Gelid Tranquillo rev.2 MB: Gigabyte 880GM-UD2H RAM: 2x2 GB Kingston 1333MHz GPU: MSI HD 6850 Cyclone 1GB PSU: Seasonic S12II-620 620W HDD: Seagate Barracuda 7200.12 1TB Case: CoolerMaster Elite 333 LCD: 22" LG flatron W2261VP Keyboard: Microsoft Comfort Curve 2000 Mouse: Microsoft Wireless Mobile Mouse 4000 OS: Windows 8 Notebook: Macbook Pro 13" CPU: i5 2.4GHz RAM: 4 GB DDR3 1333MHz GPU: Intel HD Graphics 3000 384MB RAM HDD: 500GB 5400 rpm OS: Mac OS X Lion Tablet: iPad 2 64GB 3G Phone: HTC Desire S Phone: iPhone 8GB |
|
Registrovaný: 20.11.07 Prihlásený: 18.01.09 Príspevky: 2929 Témy: 116 | 116 |
Tomy
Kód: <?php $adresar = OpenDir("mn/data/news"); $subor = ReadDir ($adresar); $lol=array($subor); echo count($lol); closedir ($adresar); ?>
ja viem ze je to dost blbe ale preco mi to vyhodi iba 1 ked su tam tri subory?
|
|
Registrovaný: 20.10.08 Prihlásený: 21.06.22 Príspevky: 2602 Témy: 31 | 31 Bydlisko: Bratislava |
dadmtb píše: Tomy Kód: <?php $adresar = OpenDir("mn/data/news"); $subor = ReadDir ($adresar); $lol=array($subor); echo count($lol); closedir ($adresar); ?>
ja viem ze je to dost blbe ale preco mi to vyhodi iba 1 ked su tam tri subory? Lebo si vypisal len posledny subor ak chces vypisat vsetky tri (a aj tak si to zle napisal, resp ta cast s $lol tam nemusi byt), tak to musis urobit v cykle napriklad takto: Kód: <?php $adresar = OpenDir("mn/data/news"); $subor = ReadDir ($adresar);
for( $i=0; $i<count($subor); $i++) { echo $subor[$i]; }
closedir ($adresar); ?>
Alebo to mozes spravit aj cez while, to je jedno..
_________________ Desktop: iMac 21" CPU: i5 2.7GHz RAM: 4 GB DDR3 1333MHz GPU: AMD Radeon HD 6770M 512MB RAM HDD: 1TB 7200 rpm OS: Mac OS X Lion Desktop: CPU: AMD Phenom II x4 BE 955 3.2@3.6GHz 1.35@1.30V CPU Cooler: Gelid Tranquillo rev.2 MB: Gigabyte 880GM-UD2H RAM: 2x2 GB Kingston 1333MHz GPU: MSI HD 6850 Cyclone 1GB PSU: Seasonic S12II-620 620W HDD: Seagate Barracuda 7200.12 1TB Case: CoolerMaster Elite 333 LCD: 22" LG flatron W2261VP Keyboard: Microsoft Comfort Curve 2000 Mouse: Microsoft Wireless Mobile Mouse 4000 OS: Windows 8 Notebook: Macbook Pro 13" CPU: i5 2.4GHz RAM: 4 GB DDR3 1333MHz GPU: Intel HD Graphics 3000 384MB RAM HDD: 500GB 5400 rpm OS: Mac OS X Lion Tablet: iPad 2 64GB 3G Phone: HTC Desire S Phone: iPhone 8GB |
|
Registrovaný: 20.11.07 Prihlásený: 18.01.09 Príspevky: 2929 Témy: 116 | 116 |
vypisalo to iba "."(bodku) to aj mne uz raz vypisalo
|
|
Registrovaný: 20.10.08 Prihlásený: 21.06.22 Príspevky: 2602 Témy: 31 | 31 Bydlisko: Bratislava |
Toto uz musi fachcit tak ako treba (sry za eng, ale slovencinu v programovani neznasam):
Kód: $open_dir = opendir("mn/data/news");
while( $entry = readdir($open_dir) ) { $dir_array[] = $entry; }
closedir($open_dir); $count = count($dir_array); sort($dir_array); for( $i=0; $i < $count; $i++ ) { if( substr($dir_array[$i], 0, 1) != "." ) { echo $dir_array[$i]; } }
Ulozi do pola vsetky fajly, zoradi prvky pola a vypise vsetky subory, okrem tych ktore zacinaju "." (bodkou)
_________________ Desktop: iMac 21" CPU: i5 2.7GHz RAM: 4 GB DDR3 1333MHz GPU: AMD Radeon HD 6770M 512MB RAM HDD: 1TB 7200 rpm OS: Mac OS X Lion Desktop: CPU: AMD Phenom II x4 BE 955 3.2@3.6GHz 1.35@1.30V CPU Cooler: Gelid Tranquillo rev.2 MB: Gigabyte 880GM-UD2H RAM: 2x2 GB Kingston 1333MHz GPU: MSI HD 6850 Cyclone 1GB PSU: Seasonic S12II-620 620W HDD: Seagate Barracuda 7200.12 1TB Case: CoolerMaster Elite 333 LCD: 22" LG flatron W2261VP Keyboard: Microsoft Comfort Curve 2000 Mouse: Microsoft Wireless Mobile Mouse 4000 OS: Windows 8 Notebook: Macbook Pro 13" CPU: i5 2.4GHz RAM: 4 GB DDR3 1333MHz GPU: Intel HD Graphics 3000 384MB RAM HDD: 500GB 5400 rpm OS: Mac OS X Lion Tablet: iPad 2 64GB 3G Phone: HTC Desire S Phone: iPhone 8GB |
|
Registrovaný: 20.11.07 Prihlásený: 18.01.09 Príspevky: 2929 Témy: 116 | 116 |
ja teda tomu nechapem ale nevypise to nic adresar je good ziadny z txt suborov nezacina bodkou takze nechapem
|
|
Registrovaný: 20.11.07 Prihlásený: 18.01.09 Príspevky: 2929 Témy: 116 | 116 |
Kód: <?php if ($handle=opendir('mn/data/news')) { while ($file = readdir($handle)) { $polozky[count($polozky)] = $file; } closedir($handle); sort($polozky); }
echo "<br>\n"; reset($polozky); while (list($key, $val) = each($polozky)) { if ($val != "." && $val != "..") { if (!is_dir($val)) { if (file_exists($val)){ $read= readfile ($val); echo "OK"; } else echo "NO"; echo '<a href="mn/data/news/'.$val.'">'.$val.'</a><br>'; } } } ?> takze toto funguje vypise mi to odkazy na jednotlive subory ale tu cast ktoru som pridal ja Kód: if (file_exists($val)){ $read= readfile ($val); echo "OK"; } else echo "NO";
samozrejme mi vypisuje NO ale preco? sak tie subory existuju please help
|
|
Registrovaný: 07.03.06 Prihlásený: 23.01.11 Príspevky: 404 Témy: 2 | 2 Bydlisko: Prešov / Pr... |
Mail som už našiel, skončil v spame, sorry... Názvy súborov nie sú samozrejme kodované, je to klasický timestamp. Ak som pochopil dobre, chceš vždy vypísať len názov novinky? Tak predpokladám, že nechceš odkazovať na súbor samotný, ale vypisovať novinky normálne. Čo takto(netestoval som to):
Kód: <?php $news_dir = dir("./mn/data/news"); while($news_file = $news_dir->read()) { if ($news_file == "." || $news_file == "..") continue; else { $file_content = file_get_contents("./mn/data/news/".$news_file); $file_item = explode("|", $file_content); $file_id = explode(".", $news_file);
echo "<a href='tam_kde_zobrazujes_novinky.php?mn-id=".$file_id[0]."'>".$file_item[0]."</a><br />";
} } ?>
Do ďalšej verzie pridám tvorbu vlastných šablón, bude to jednoduchšie.
|
|
Registrovaný: 20.11.07 Prihlásený: 18.01.09 Príspevky: 2929 Témy: 116 | 116 |
jeeeeej diki moc funguje to ale este jedna vec ze to akurat zobrazuje opacne teda potreboval by som ten posledny subor uviest ako prvy dalo by sa to? a este jedna vec v akom formate si teda ukladal tie subory bo neako z toho neviem vycitat datum ani nic Dik
|
|
Registrovaný: 07.03.06 Prihlásený: 23.01.11 Príspevky: 404 Témy: 2 | 2 Bydlisko: Prešov / Pr... |
Kód: <?php $news_dir = dir("./mn/data/news"); $news_array = ""; while($news_file = $news_dir->read()) { $file_id = explode(".", $news_file); if ($news_file == "." || $news_file == "..") continue; elseif ($file_id[0] > time()) continue; else $news_array[] = $file_id[0]; } sort($news_array); $news_array = array_reverse($news_array); foreach ($news_array as $news_id) { $file_content = file_get_contents("./mn/data/news/".$news_id.".txt"); $file_item = explode("|", $file_content);
echo "<a href='tam_kde_zobrazujes_novinky.php?mn-id=".$news_id."'>".$file_item[0]."</a><br />"; } ?>
Mená súborov sú v unixovom formáte dátumu, tj pošet sekúnd od 1.1.1970: http://en.wikipedia.org/wiki/Unix_time
|
|
Registrovaný: 20.11.07 Prihlásený: 18.01.09 Príspevky: 2929 Témy: 116 | 116 |
Diki moc mno "kto umi ten umi a kto neumi ten cumi"
|
|
Registrovaný: 21.02.07 Prihlásený: 21.02.10 Príspevky: 3984 Témy: 96 | 96 |
TommyHot píše: Preco odzadu? Nie je to jedno ako pristupis k jednotlivym prvkom pola?
Presne preto aby to bolo odzadu
|
|
Registrovaný: 20.11.07 Prihlásený: 18.01.09 Príspevky: 2929 Témy: 116 | 116 |
please a mohli by ste mi este ozrejmit tento priklad s tym druhym som sa radsej ani nezatazoval
Kód: <?php $news_dir = dir("./mn/data/news"); while($news_file = $news_dir->read()) { if ($news_file == "." || $news_file == "..") continue; else { $file_content = file_get_contents("./mn/data/news/".$news_file); $file_item = explode("|", $file_content); $file_id = explode(".", $news_file);
echo "<a href='clanky.php?mn-id=".$file_id[0]."'>".$file_item[0]."</a><br />";
} } ?>
nechapem nasledujucej veci $file_item = explode("|", $file_content); a potom ze .$file_item[0] to akoze ako ho rozdeli tak ta uplne úprva cast nemylim sa? a potom to $file_id = explode(".", $news_file); kde to tam akoze hlada bodku a naco? Dik
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
$file_content v tvojom pripade obsahuje data zo vstupneho suboru, funkcia explode rozdeli tieto data do pola (s ciselnymi indexami) podla zadaneho oddelovaca... staci si pozriet dokumentaciu... explode(".", $news_file); a pouzitie nulteho indexu znamena, ze ti vrati len nazov suboru bez pripony - v idealnom pripade (pripadne cely nazov suboru, ak priponu neobsahuje)... neviem, aky je nazov suborov v mnews...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 07.03.06 Prihlásený: 23.01.11 Príspevky: 404 Témy: 2 | 2 Bydlisko: Prešov / Pr... |
Popísal ti to už stenley dostatočne. Je to len jednoduchá práca s poľami a funkciou explode. Kedže názvy súborov sú vždy rovnaké: ciselne_id.txt, dalo by sa to zapísať aj jednoduchšie takto, aby ťa to explode cez bodku neotravovalo: Kód: <?php $news_dir = dir("./mn/data/news"); while($news_file = $news_dir->read()) { if ($news_file == "." || $news_file == "..") continue; else { $file_content = file_get_contents("./mn/data/news/".$news_file); $file_item = explode("|", $file_content);
echo "<a href='clanky.php?mn-id=".substr($news_file , 0, -4)."'>".$file_item[0]."</a><br />";
} } ?>
Fukcia substr tak odstráni z názvu súboru časť ".txt", pre viac info si pozri dokumentáciu jednotlivých funkcií: explode, substr.
|
|
Registrovaný: 20.11.07 Prihlásený: 18.01.09 Príspevky: 2929 Témy: 116 | 116 |
Diki moc
|
|
Registrovaný: 20.11.07 Prihlásený: 18.01.09 Príspevky: 2929 Témy: 116 | 116 |
ale este predsa len nieco potrebujem som si ten druhy priklad trocha upravil
Kód: foreach ($news_array as $cislo => $news_id) { $file_content = file_get_contents("./mn/data/news/".$news_id.".txt"); $file_item = explode("|", $file_content);
echo "$cislo<a href='tam_kde_zobrazujes_novinky.php?mn-id=".$news_id."'>".$file_item[0]."</a><br />"; }
aby mi to cislovalo pred jednotlivy clanok aj to funguje ale ide to od 0 a neviem ako od 1 som skusal vselico aj predinkrementaciu ale akosi mi to nejde pretoze potom chcem ze aby mi vypisovalo iba napr 10 noviniek viac nie bo by sa mi to nezmestilo na stranku Dik
|
|
Registrovaný: 07.03.06 Prihlásený: 23.01.11 Príspevky: 404 Témy: 2 | 2 Bydlisko: Prešov / Pr... |
Toto ti vypíše maximálne 10 titulkov noviniek postupne očíslovaných(uprav si hodnotu $news_count podľa toho koľko noviniek chceš vypisovať): Kód: <?php $news_count = 10; $news_dir = dir("./mn/data/news"); $news_array = "";
while($news_file = $news_dir->read()) { $file_id = explode(".", $news_file); if ($news_file == "." || $news_file == "..") continue; elseif ($file_id[0] > time()) continue; else $news_array[] = $file_id[0]; }
sort($news_array); $news_array = array_reverse($news_array); $max = (count($news_array) <= $news_count) ? count($news_array) : $news_count; for ($i = 0; $i <= $max-1; $i++) { $file_content = file_get_contents("./mn/data/news/".$news_array[$i].".txt"); $file_item = explode("|", $file_content);
echo ($i+1)." <a href='tam_kde_zobrazujes_novinky.php?mn-id=".$news_array[$i]."'>".$file_item[0]."</a><br />"; } ?>
|
|
Registrovaný: 20.11.07 Prihlásený: 18.01.09 Príspevky: 2929 Témy: 116 | 116 |
Diki moc inak aspon som uz vyriesil problem s nulou aj v mojom pripade pouzil som to $cislo+1 som skusal vselico ale toto ma nenapadlo teda vlastne aj hej ale zle som to zrealizoval inak ten tvoj skriptik je fakt super az mi je zle ako ja prd viem z php ale este raz Dik
|
|
Stránka: 1 z 1
| [ Príspevkov: 22 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| v Ostatné | 3 | 608 | 05.10.2008 16:11 JanoF | | v Ostatné | 5 | 762 | 07.08.2010 21:54 shaggy | | v HTML, XHTML, XML, CSS | 11 | 1015 | 12.05.2009 15:01 pilná lama glama | | v PHP, ASP | 8 | 971 | 01.03.2007 17:25 javo | | v Delphi, Visual Basic | 5 | 657 | 27.03.2012 19:50 Fico | | v Ostatné programy | 4 | 715 | 25.06.2008 16:37 Blackshadow | | v HTML, XHTML, XML, CSS | 2 | 498 | 20.07.2009 14:15 masterpeter | | v Ostatné programy | 1 | 900 | 22.12.2006 10:38 Shit | | v Ostatné programy | 0 | 344 | 11.02.2016 21:05 velver | | v PHP, ASP | 1 | 594 | 04.05.2010 22:22 stenley | | v PHP, ASP | 24 | 1203 | 10.07.2008 12:06 rooobertek | | v Databázy | 0 | 417 | 30.12.2011 14:21 zdeniatqo | | v Ostatné programy | 2 | 739 | 31.03.2007 18:39 smolkop | | v PHP, ASP | 0 | 434 | 09.10.2010 14:42 tofina0 | | v Ostatné | 0 | 669 | 08.10.2008 19:21 exoomer | | v Delphi, Visual Basic | 1 | 862 | 01.01.2010 12:08 B.A.X.O |
|