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

Форум PHP

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

 

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

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

тема: Загадочный скрипт.
 
 автор: Владимир55   (24.11.2006 в 16:25)   письмо автору
 
 

Есть один небольшой скрипт, код которого я поместил внизу. Он предназначен для того, чтобы из текста выбирать слова пачками заданного размера.

Реально он у меня нормально не работает, и как он должен работать, я так и не понял.
Вот такие нерешаемые вопросы:
1. Что такое
$page=intval($_GET['page']); Что он делает?
2. Первую страницу скрипт выведет. Но как перейти к извлечению следующей? Очевидно, надо изменить параметр $page, но как он меняется в этом скрипте? И в каких пределах? Ведь число страниц в книге неизвестно!
3. Для исследования я ввел простенькое содержимое текста, результат вывода которого предсказуем. И при запуске скрипта получаем ответ:
«Здесь семь слов».

Однако в реале и перед началом фразы, и между словами может быть пробелы, и не по одному. Так вот: если сделать пробел перед словом «Здесь», то выводится другое содержание первой страницы, а именно:
«Здесь семь»
Если добавить впереди два пробела, то выводится «Здесь», а если добавить три пробела, то не выводится ничего. Похоже, что он считает пробелы за слова.

В общих, моих знаний не хватило для того, чтобы покорить этот скрипт! Что подскажут умные люди?

============
$text = "Здесь семь слов, посвященных проверке этого оператора" ; // Для теста

$words_at_page=2; //слов на странице
$page=intval($_GET['page']);
// $text=file_get_contents("book.txt"); // Пока отключим
$words=explode(" ", $text);
$start=$page*$words_at_page;
for ($i=$start; $i<=$start+$words_at_page; $i++)
{
$new_text.=$words[$i]." ";
}
echo $new_text;

   
 
 автор: Loki   (24.11.2006 в 16:47)   письмо автору
 
   для: Владимир55   (24.11.2006 в 16:25)
 

можно так:
<?
$text 
"Здесь семь слов, посвященных проверке этого оператора" // Для теста

$words_at_page=2//слов на странице
$page=intval($_GET['page']);
$words=split('/ /'$text, -1PREG_SPLIT_NO_EMPTY);
$start=$page*$words_at_page;
for (
$i=$start$i<=$start+$words_at_page$i++)
{
$new_text.=$words[$i]." ";
}
echo 
$new_text;

правда работать будет медленнее.

   
 
 автор: Владимир55   (24.11.2006 в 17:01)   письмо автору
 
   для: Loki   (24.11.2006 в 16:47)
 

Странно, но у меня этот кусочек не выводит вообще ничего...

Может он с четвертой версией рнр не дружит?

   
 
 автор: Loki   (24.11.2006 в 17:17)   письмо автору
 
   для: Владимир55   (24.11.2006 в 17:01)
 

перепутал функцию

<? 
$text 
"Здесь семь слов, посвященных проверке этого оператора" // Для теста 

$words_at_page=2//слов на странице 
$page=intval($_GET['page']); 
$words=preg_split('/ /'$text, -1PREG_SPLIT_NO_EMPTY); 
$start=$page*$words_at_page
for (
$i=$start$i<$start+$words_at_page$i++) 

$new_text.=$words[$i]." "

echo 
$new_text;
?> 

   
 
 автор: Владимир55   (24.11.2006 в 17:33)   письмо автору
 
   для: Loki   (24.11.2006 в 17:17)
 

Теперь выводит, спасибо!

И, вроде бы, проигнорирует любое число пробелов, если я правильно понял...

   
Rambler's Top100
вверх

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