Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Чтение данных из файла
 
 автор: Patriot22   (01.12.2007 в 13:56)   письмо автору
 
 

Добрый день. Подскажите пожалуйста, как мне сделать, чтоб не обрезало целые слова. как сделать, чтоб смотреть по пробелу? вот код:

    $fp = fopen($d, "r"); 
    if(isset($_GET['p'])) $p = (int)$_GET['p'];
    else                  $p = 0;  
    $offset = $p * 2000 + 1; 
    fseek($fp, $offset); 
    print del(fread($fp, 2000))."<br/>"; 

   
 
 автор: sim5   (01.12.2007 в 14:18)   письмо автору
 
   для: Patriot22   (01.12.2007 в 13:56)
 

ftell($fp) после fssek() возвратит вам позицию указателя файла. Считывайте символ в этой позиции и если не пробел - "шаг влево, шаг вправо".

   
 
 автор: Patriot22   (01.12.2007 в 14:30)   письмо автору
 
   для: sim5   (01.12.2007 в 14:18)
 

sim5, подскажи plz как прально это сделать

   
 
 автор: sim5   (01.12.2007 в 14:35)   письмо автору
 
   для: Patriot22   (01.12.2007 в 14:30)
 

Сесть и описать действия по условию, так же как вы писали и код выше. fseek() и ftell() вам в помощь, сдвигайте на позицию (влево видимо лучше, так как вы ограничиваите вывод по количеству символов, как я понимаю), проверяйте, опять не пробел, еще сдвиг. Видимо так.

PS. Если вы делаете навигацию по тексту, это смещение при поиске пробела, нужно будет учесть при запросе следующей порции текста.

   
 
 автор: Patriot22   (02.12.2007 в 18:54)   письмо автору
 
   для: sim5   (01.12.2007 в 14:35)
 

попробывал так, что т не выходит.

$bol = fread($fp, ftell($fp));
 while($bol !== ' ')
  fseek($fp, ftell($fp)+1);

   
 
 автор: sim5   (02.12.2007 в 20:31)   письмо автору
 
   для: Patriot22   (02.12.2007 в 18:54)
 

И не выйдет, так не выйдет.

   
 
 автор: exp   (01.12.2007 в 21:42)   письмо автору
 
   для: Patriot22   (01.12.2007 в 13:56)
 

можно так попробовать
<?php
$p 
= (isset($_GET['p'])) ? (int)$_GET['p'] : 0;
$simv 200// интервал в котором ищется пробел после 2000

$fp fopen('file.txt''r');

if (
$p && $p 0) {
    
$set = ($p 2000);
    
fseek($fp$set);
    
$onset strpos(fread($fp$simv), ' ');
    
fseek($fp, ($set $onset));
} else { 
    
$set 0;
    
$onset 0;
}
$offset = @strpos(($str fread($fp, (2000 $simv))), ' '2000) or $offset 2000 ;

?><hr><?
print substr($str0, ($offset 1)) . "<br/>";
fclose($fp);
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования