|
|
|
| Добрый день. Подскажите пожалуйста, как мне сделать, чтоб не обрезало целые слова. как сделать, чтоб смотреть по пробелу? вот код:
$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/>";
|
| |
|
|
|
|
|
|
|
для: Patriot22
(01.12.2007 в 13:56)
| | ftell($fp) после fssek() возвратит вам позицию указателя файла. Считывайте символ в этой позиции и если не пробел - "шаг влево, шаг вправо". | |
|
|
|
|
|
|
|
для: sim5
(01.12.2007 в 14:18)
| | sim5, подскажи plz как прально это сделать | |
|
|
|
|
|
|
|
для: Patriot22
(01.12.2007 в 14:30)
| | Сесть и описать действия по условию, так же как вы писали и код выше. fseek() и ftell() вам в помощь, сдвигайте на позицию (влево видимо лучше, так как вы ограничиваите вывод по количеству символов, как я понимаю), проверяйте, опять не пробел, еще сдвиг. Видимо так.
PS. Если вы делаете навигацию по тексту, это смещение при поиске пробела, нужно будет учесть при запросе следующей порции текста. | |
|
|
|
|
|
|
|
для: sim5
(01.12.2007 в 14:35)
| | попробывал так, что т не выходит.
$bol = fread($fp, ftell($fp));
while($bol !== ' ')
fseek($fp, ftell($fp)+1);
|
| |
|
|
|
|
|
|
|
для: Patriot22
(02.12.2007 в 18:54)
| | И не выйдет, так не выйдет. | |
|
|
|
|
|
|
|
для: 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($str, 0, ($offset + 1)) . "<br/>";
fclose($fp);
?>
|
| |
|
|
|