Jump to content
php.lv forumi

Recommended Posts

Posted

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!

Posted

$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

Posted

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

Posted

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>

Posted

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.

Posted

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);

}

}

Posted

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?

Posted

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.

Posted

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 )

Posted

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.

Posted

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?

Posted (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 by rudzis
Posted

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!

×
×
  • Create New...