Скрипт за страници

mute

Registered
значи трябвами скрипт за страници на новина
когато преглеждам една новина но тя е много далга искакм да направя отдолу да има няколко страници
т.е. да изкарва текста първите 1000 символа примерно 2ра страница 1000-2000 и тнт
 
Smirnoff каза:
Браточка да не ти трябва етакова нещо :

:arrow: http://web-tourist.net/login/login/view.php?st=740

?
ами нещо такова е
самоче трябва да ми изписва самия текст на няколко страници
примерно

НОВИНА част1

Текст Текст Текст Текст Текст Текст
Текст Текст Текст Текст Текст Текст
Текст Текст Текст Текст Текст Текст..

линк към страница 2 3 ...

-------------------------------------

НОВИНА част 2

Текст Текст Текст Текст Текст Текст
Текст Текст Текст Текст Текст Текст
Текст Текст Текст Текст Текст Текст..

линк към страница 1 3 ...

нещо такова

предполагам че трябва да преброя всички символи в заявката примерно 5000 и ако сам да са по 1000 на страница
да се направи да показва парите 1000 след това 2000 и т.н.т

някои да помогне как точно да стане че никви идеи си нямам
 
Аз правих нещо подобно в dealbg.com, показвам по 4 детски книжки на страница и така докато се свършат. Става със сесийни променливи. Ако мислиш, че ще ти е полезно, може да си го припомня.
 
Не разполагам с готов код, но ако текста се извлича от файл мисля, че мога да преработя друг подобен и ако върнеш отговор до сутринта ще се опитам да го направя.
Ако съдържанието е от БД, не мога да ти дам дори принципен съвет :(
 
от БД е
пробвах да преброя символите и после да изкарам
1 страница от 1 до 1000
2 страница от 1000 до 2000 и т.н.т.
обаче текста които извличам е със ХТМЛ тагова и така се случава че втората страница може да започава примерно с p> или някои друг таг които се изписва
 
Може би е по-удачно да броиш параграфите, а не символите.
Например с eregi() броиш колко пъти се среща </p> и когато броят на тия тагове стигне някакво число, например 4, минаваш на следващата страница.
 
Doris каза:
Може би е по-удачно да броиш параграфите, а не символите.
Например с eregi() броиш колко пъти се среща </p> и когато броят на тия тагове стигне някакво число, например 4, минаваш на следващата страница.
точно това си мислих и аз но незнаех функцията
 
Погледни този урок:
http://web-tourist.net/login/login/view.php?st=383

Виж там където пише за "Yahoo новини" или другите преди това.
Вижда се как може да се извлече текста който стои между дадени
тагове.

Може да си измислиш тагове даже.

Аз лично не мога да се наема да помагам с някакви алгоритми, защото смятам,
че има нещо сгрешено в цялата система.
Не може всички новини да се запишат в едно поле и от там да се чудиш как да ги листваш.
 
не всяка новина си е в отделен ред
проблема е че трябва да направя 1 новина да излиза на няколко страници
ще разгледам линка

п.с. в ирк ми казаха за някаква MySQL функция substring обаче неможах да намеря никаква информация за нея
тази вечер пак ще питам ;)
 
mute каза:
не всяка новина си е в отделен ред
проблема е че трябва да направя 1 новина да излиза на няколко страници
ще разгледам линка

п.с. в ирк ми казаха за някаква MySQL функция substring обаче неможах да намеря никаква информация за нея
тази вечер пак ще питам ;)

най-вероятно са ти говорилите за substr(), с нея може да се направи това, което искаш.
Проблема е, че ти каза, че в базата е записан заедно с хтмл таговете... Общо взето това ти усложнява много заданието :cry:
 
Ето един начин:
DEMO

Не е идеален, но се надявам да ти даде някои идеи.
Това е първият файл, в който се задават сесийни променливи:
Код:
<?php
session_start();
      $HTTP_SESSION_VARS['j'] = "0";
      $HTTP_SESSION_VARS['c']='3';
      $c=$HTTP_SESSION_VARS['c'];
      $j =$HTTP_SESSION_VARS['j'];
      $HTTP_SESSION_VARS['k']=$j + $c;
      $k=$HTTP_SESSION_VARS['k'];
      
      $HTTP_SESSION_VARS['kobr'] = $j - $c;
      $kobr = $HTTP_SESSION_VARS['kobr'];
  require("f.inc");    
?>      
<?php
 
 $n1=count($t);
 $n1=$n1-1;
 
 $HTTP_SESSION_VARS['n1'] =$n1;
 require("f2.inc");
?>

Това е f.inc , в който текстът $text се разделя на части по параграфи:
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Текст</title>
<meta http-equiv="Content-Type" content="text/html; CHARSET=Windows-1251" />

</head>
 

<body >
<?php
      
     

   


   $text = "<p>Текст0</p><p>Текст1</p><p>Текст2</p><p>Текст3</p><p>Текст4</p><p>Текст5</p><p>Текст6</p><p>Текст7</p>";
  



 $i=0;
 $t[$i] = strtok($text,'</p>');
 

 while ($t[$i] !='')
 {
	 $i=$i+1;
	 $t[$i] = strtok('</p>');
	
	 
 }

?>

Това е f2.inc , който се отпечатва на отделни страници зададения брой параграфи $c :
Код:
<?php
   echo "<p>общ брой  параграфи :".$n1."&nbsp" ;
   if ($kobr >= 0 )
   {
	echo "&nbsp<a href='tobr.php'>предишни  </a>" ;   
   }
   
   if ($k < $n1 )
   {
	echo "&nbsp<a href='t.php'>следващи  </a></p>" ;   
   }
 
if ($k > $n1 )
   {
	$c1=$c+$n1 -$k;  
   }
else
{   
  $c1=$c;
  }
  

  echo '<p>Показани на тази страница параграфи: '.$c1.'</p>';
       
  

  
  for ($i=0; $i <$c1; $i++)
  
  {
	$l=$j+$i;  
     echo '<p>'.$t[$l].'</p>';

  }
 


?>


      <HR>
    </BODY></HTML>

Това е t.php , който дава преминаването към следващата страница:
Код:
<?php
session_start();
      $HTTP_SESSION_VARS['j']=$HTTP_SESSION_VARS['k'];
      
      $c=$HTTP_SESSION_VARS['c'];
      $j =$HTTP_SESSION_VARS['j'];
      $HTTP_SESSION_VARS['k']=$j + $c;
      $k=$HTTP_SESSION_VARS['k'];
      $HTTP_SESSION_VARS['kobr']=$j - $c;
      $kobr = $HTTP_SESSION_VARS['kobr'];
      $n1=$HTTP_SESSION_VARS['n1']; 
  require("f.inc");
  require("f2.inc");      
 ?>

Това е tobr.php , който дава преминаването към предишната страница:
Код:
<?php
      session_start();
      $HTTP_SESSION_VARS['j']=$HTTP_SESSION_VARS['kobr'];
       
     $c=$HTTP_SESSION_VARS['c'];
      $j =$HTTP_SESSION_VARS['j'];
      $HTTP_SESSION_VARS['k']=$j + $c;
      $k=$HTTP_SESSION_VARS['k'];
      $HTTP_SESSION_VARS['kobr']=$j - $c;
      $kobr = $HTTP_SESSION_VARS['kobr'];
       
      $n1=$HTTP_SESSION_VARS['n1'];
       require("f.inc"); 
       require("f2.inc"); 
?>
 

Back
Горе