rudzis Posted September 1, 2004 Report Share Posted September 1, 2004 Man piem. ir fails dati.txt, kura saturs ir: Virsraksts /n raksts Un ir fails news.php, kurā ir divi mainīgie - $1 un $2 . $1 = "" $2 = "" Kā lai inkluudojot failaa news.php failu dati.txt, es pieshkjiru katram mainiigajam savu texta daļu, taatad lai $1 = "Virsraksts" un $2 = "raksts"? Tātad tas /n , kad ierakstiits .txt failaa paarveershas par kvadraatinju. Vajag lai texta dalja pirms taa kvadraatinja buutu vienaa mainiigajaa un peec - otraa mainiigajaa, lai taalaak var abus salikt pa vietaam, kur katram jaaparaadaas. Please paliidziet! Link to comment Share on other sites More sharing options...
Venom Posted September 1, 2004 Report Share Posted September 1, 2004 $lines=explode("\n",$text); tagad katra līnija ir masīva $lines elements (1mā līnija ir 0-elements). att. uz $1, $2 - mainīgajiem - pārseris nebļauj ka mainīgais ar ciparu sākas, ā? $var1=$lines[0];//virsraksts $var2=$lines[1];//raksts var pielietot trim() funkciju $lines elementiem, lai noņemtu atstarpes beigās. e.g. $var1=trim($lines[0]);//virsraksts Link to comment Share on other sites More sharing options...
Venom Posted September 1, 2004 Report Share Posted September 1, 2004 NB: ja rakstam būs vairākas līnijas, tad izmanto $var1=$lines[0];//virsraksts unset($lines[0]);//izmetam no masīva $var2=implode('',$lines); //saliekam stringus atpakaļ vai arī: $firstlb=strpos($text,"\n");//atrodam pirmo līnijas zīmi $virsraksts=substr($text,0,$firstlb); //viss kas pirms zīmes $raksts=substr($text,$firstlb); //viss kas pēc Link to comment Share on other sites More sharing options...
rudzis Posted September 1, 2004 Author Report Share Posted September 1, 2004 Njaa, es proveeju ar vienu metodi un ar otru, rezultāts abām vienāds - virsraksts ir "Array" un texta vispaar nav :( <? $id = $_GET['id']; ?> <? $text = file("content/news/$id.txt"); $lines=explode("\n",$text); $var1=$lines[0];//virsraksts $var2=$lines[1];//raksts ?> <table> <?php echo "<h3><font face=Georgia size=3><a href='?page=read&id=$id'>$var1</a></font><br> <img border=0 src=img/line_solid.bmp width=499 height=3></h3> <p><font face=Lucida Sans Unicode size=2>$var2</font></p> <p><font face=Georgia size=2><br> <a href='?page=read&id=$id'>Lasīt visu rakstu</a> | <a href='?page=comments&id=$id'>komentāri</a><br> $autors @ $datums</font> <img border=0 src=img/line_thin.bmp width=499 height=2></p>"; ?> </table> Link to comment Share on other sites More sharing options...
rudzis Posted September 1, 2004 Author Report Share Posted September 1, 2004 O.K. Viss kaartiibaa, man izdevaas! Paldies! Link to comment Share on other sites More sharing options...
rudzis Posted September 1, 2004 Author Report Share Posted September 1, 2004 Venom, man veel vieniigi vajag lai vienaa lapaa paraadiitos 10 ieraksti, bez nekaadas lapu daliishanas. Redz, kur visa source: <table> <?php $topicsk = file('content/news/skaits.txt'); for ($i=$topicsk[0];$i>0;$i--){ $zinja=file("content/news/$i.txt"); $zinja[0]=stripslashes($zinja[0]); $zinja[1]=stripslashes($zinja[1]); $laiks=date("d.m.y H:i", filemtime("content/news/$i.txt")); echo "<h3><font face=Georgia size=3><a href='?page=read&id=$i'>$zinja[0]</a></font><br> <img border=0 src=img/line_solid.bmp width=499 height=3></h3> <p><font face=Lucida Sans Unicode size=2>$zinja[1]</font></p> <p><font face=Georgia size=2><br> <a href='?page=read&id=$i'>Lasīt visu rakstu</a> | <a href='?page=comments&id=$i'>komentāri</a><br> $autors @ $laiks</font> <img border=0 src=img/line_thin.bmp width=499 height=2></p>"; } ?> </table> Taatad, kad no faila skaits.txt uzzin ierakstu skaitu, vajag, lai paraadiitu tikai 10 jaunaakos, taapeec buus vajadziigs veel viens mazs piemeerinjsh. Jau ieprieksh paldies par visu. Link to comment Share on other sites More sharing options...
Venom Posted September 1, 2004 Report Share Posted September 1, 2004 src="img/line_solid.bmp" ? un rādās arī? ko nozīmē vienaa lapaa paraadiitos 10 ieraksti, bez nekaadas lapu daliishanas.? ja respektīvi, 10 pēdējie ieraksti vispār, tad var pie postu ieglabāšanas updeitot kādu failu/massīvu, kurā būs tieši 10 atsauces uz rakstiem, un tie rotēsies, piem. katrā līnijā var ierakstīt raksta identifikatoru, e.g. if (isset($_POST['article'])) { $top10=@file('pedejie.10'); if (!in_array($article_id."\n",$top10)) { $top10[]=$article_id."\n";//pievienojam vēl vienu elementu masīva beigās if (count($top10)>10) array_shift($top10);//atmetam pirmo līniju $fp=fopen('pedejie.10'','w'); fwrite($fp,implode('',$top10)); fclose($fp); } } Link to comment Share on other sites More sharing options...
rudzis Posted September 1, 2004 Author Report Share Posted September 1, 2004 Taa bilde paraadaas bez probleemaam. Es ar tiem 10 jaunaakajiem domaaju, vinjus nevis atseviskjaa masiivaa gruuzt, bet vienkaarshi no taa faila skaits.txt uzzinaat skaitu, bet paraadiit tikai 10 peedeejos. Taatad, ja skaits.txt saturs ir 35, tad lai paraada no 25-35, saakot ar 35to. Bez atsevishkja faila vai masiiva veidoshanas. Tas tachu ir iespeejams, vai ne? Link to comment Share on other sites More sharing options...
rudzis Posted September 2, 2004 Author Report Share Posted September 2, 2004 Nu kaa tad buus ar to skaits.txt? Es kaut kaa varu likt no skaita piem. 35 paraadiit tikai 26-35. Tas 35 jau var buut jebkursh cits skaitlis, taatad vajag 10 peedeejos. Link to comment Share on other sites More sharing options...
Venom Posted September 2, 2004 Report Share Posted September 2, 2004 tad iesaku pierakstīt jaunākas rindas faila sākumā ar fopen('...','r+') un ielasīt ar $tmp=10; while($tmp--) { ... fgets($fp,1024); } vai nua arī ielasīt visu ar @file() (ja zināms, ka līniju skaits failā būs relatīvi mazs un netiks pārterēta oper. atmiņa) un izmantot array_slice() vai nu vienkārši uzzināt rindu skaitu ar count() un ar parastu ciklu izstaigāt masīva elementus ($array[$current], kur $current mainās no $count-10 līdz $count ) Link to comment Share on other sites More sharing options...
rudzis Posted September 2, 2004 Author Report Share Posted September 2, 2004 Jā, bet ja ieskaties manaa sourcee, kas ir augstāk, tad var saprast, ka katrs raksts iet savā failā un nevis vienaa, taa ka vajag kaut ko pasākt ar to skaits.txt, lai parāda tikai konkrētus failus, nevis rindiņas. Link to comment Share on other sites More sharing options...
Venom Posted September 2, 2004 Report Share Posted September 2, 2004 nesapratu: tev direktorijā vienkārši glabājas faili ar saturu "virsraksts/pilns teksts" un atsevišķā failā tu gribi norādīt - rādīt no 35 jaunākā uz leju? Link to comment Share on other sites More sharing options...
rudzis Posted September 2, 2004 Author Report Share Posted September 2, 2004 (edited) Nee, man ir fails skaits.txt, kuraa ir noraadiits kopeejais rakstu skaits ar vienu skaitli piem. 20. Atseviskjaa direktorijaa ir faili ar nosaukumiem 1.txt ; 2.txt utt., kuru saturs ir Virsraksts /n raksts . news.php uzzin to skaitu no skaits.txt un njemot sho skaitu veeraa, paraada visus failus, kuriem nosaukumi ir 1.txt, 2.txt utt. , un kaarto ar jaunaako augsaa, taatad fails ar lielaako ciparu paraadiisies pashaa augshaa. Vienkārši vajag, lai news.php paraadiitu tikai 10 jaunaakos failus (ar lielaakajiem nosaukumiem), nevis visus. Source tachu augstaak jau ir! Saproti? Spriezjot peec tava peedeejaa ieraksta, tev saak pielekt :) Edited September 2, 2004 by rudzis Link to comment Share on other sites More sharing options...
rudzis Posted September 2, 2004 Author Report Share Posted September 2, 2004 Venom, kur tu pazudi? Tagad saproti kas par lietu? Link to comment Share on other sites More sharing options...
Gacha Posted September 2, 2004 Report Share Posted September 2, 2004 Nu nav gadījies ar šito lietu ņemties, bet ja tā padomā, kas tev vajadzīgs. Paņemt no direktorijas visus failus un ielasīt masīvā un tad attiecīgi parādīt 0-10 10-20 utt Es darītu tā: ieeju lv.php.net atrodu f-ciju readdir un tur ir šis: if ($handle = opendir('.')) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { echo "$file\n"; } } closedir($handle); } Pārveidojam to uz: $i=0; if ($handle = opendir('.')) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { $masivs[$i] = $file; $i++; } } closedir($handle); } Tagad mums visi tavi raksti ir iekš masīva! Un tagad atliek tik izmest attiecīgi uz ekrēna. $g=0; $z=9; for($i=$g; $i=>$z; $++){ include($masivs[$i]); } Tagad tik izštuko ko darīt ar to $g un $z lai viss smuki slēgtos! Link to comment Share on other sites More sharing options...
Recommended Posts