PHP строковая проблема - PullRequest
       8

PHP строковая проблема

0 голосов
/ 31 октября 2009

у меня есть этот скрипт

$content = string
if(!isset($_GET['page'])){
$page = 1;
}
else{
$page = $_GET['page']; 
}

while($content[$limit]!= ' '){
$limit++;
}
print substr($content,($page-1)*$limit, $limit);

с первого раза все работает нормально (если страница не задана или номер страницы равен 1), но если номер моей страницы больше 1, это разделяет мои слова. причина $ limit увеличена, и даже $ limit установлен в смещение, которое соответствует пробелу, начало в функции substr () также увеличено, и это в основном сдвигает весь кусок, и последний символ, который я получаю, не является требуемым пробелом но первые пару букв после пробела. (надеюсь, я понял). как я могу решить эту проблему? спасибо

Ответы [ 2 ]

1 голос
/ 31 октября 2009

Попробуйте:

print substr($content, ($page-1) *  $limit, strpos  ( $content, ' ' , ($page-1) *  $limit));

Это говорит:

Взять подстроку $ content, начиная с данной страницы * ограничение для каждой страницымне все символы до позиции следующего пробела.

1 голос
/ 31 октября 2009

Как сказал Франк Фармер , используйте wordwrap , но со странным разделителем. Затем используйте взорвать с этим разделителем, чтобы получить массив.

$limit = 500; // max chars per page?
$content = "lots of text ..."; // the whole article?

if(!isset($_GET['page'])){
   $page = 1;
} else {
   $page = intval($_GET['page']); 
}

$pages = explode("@BREAK@", wordwrap($content, $limit, "@BREAK@"));

print $pages[$page-1];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...