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

Форум PHP

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

 

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

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

тема: Случайный вывод
 
 автор: BossXP   (08.11.2004 в 20:16)   письмо автору
 
 

Всем привет!
вот такой вопрос есть, как следаль случайный ввывод фраз на php
есть 2 файла:
index.php
base.txt

вот чтобы скрипт брал из base.txt допустим 1 строчку и вставляв в index.php?

С уважением, BossXP

   
 
 автор: cheops   (08.11.2004 в 20:32)   письмо автору
 
   для: BossXP   (08.11.2004 в 20:16)
 

Все фразы находятся в первой строке файла base.txt?

   
 
 автор: BossXP   (08.11.2004 в 20:47)   письмо автору
 
   для: cheops   (08.11.2004 в 20:32)
 

нет,
она распределены по строкам например:
Фраза1
Фраза2
Фраза3
Фраза4
и т.д

   
 
 автор: cheops   (08.11.2004 в 20:49)   письмо автору
 
   для: BossXP   (08.11.2004 в 20:47)
 

Тогда в скрипте ниже "," нужно заменить на "\n".

   
 
 автор: cheops   (08.11.2004 в 20:48)   письмо автору
 
   для: cheops   (08.11.2004 в 20:32)
 

Можно реализовать следующим образом
<?php
  $filename 
"base.txt";
  
// Читаем содержимое файла $filename
  
$fd fopen($filename"r");
  
$bufer fread($fd,filesize($filename));
  
fclose($fd);
  
// Разбиваем содержимое файла на подстроки
  // разделителем которых выступают ,
  // помещая их в массив $phrase
  
$phrase explode(",",$bufer);
  
// Получаем случайный индекс массива $phrase
  
$index rand(0,count($phrase)-1);
  
// Выводим фразу
  
echo $phrase[$index];
?>

Здесь разделителями фраз выступают запятые, хотя наверное лучше переделать таким образом, чтобы разделителем выступал первод строки - тогда каждую фразу можно будет писать на новой строке - будет удобнее редактировать файл base.txt.

   
 
 автор: BossXP   (08.11.2004 в 22:53)   письмо автору
 
   для: cheops   (08.11.2004 в 20:48)
 

Ясно... Спасибо!
только вот эти 2 строчки непонял:
$bufer = fread($fd,filesize($filename));
$index = rand(0,count($phrase)-1);
разъясните пожалуйста.!

   
 
 автор: cheops   (08.11.2004 в 23:23)   письмо автору
 
   для: BossXP   (08.11.2004 в 22:53)
 

Строка кода
$bufer = fread($fd,filesize($filename)); 

Читает при помощи функции fread (http://www.softtime.ru/dic/id_dic=191&id_group=6) содержимое файла, определяемого файловым дескриптором $fd, в качестве второго аргумента функция принимает число байт, которые нужно прочитать из файла. Так как нам нужно прочитать весь файл - мы передаём размер файла, определяя его при помощи функции filesize() (http://www.softtime.ru/dic/id_dic=184&id_group=6)

Строка кода
$index = rand(0,count($phrase)-1); 

Возвращает случайное число, которое помещается в переменную $index. Для этого используется функция rand(), которая принимает два параметра - начало и конец интервала для которого генерируется случайное число. Индексы в массиве начинаются с 0, поэтому первый элемент равен 0, в качестве второго аргумента передаётся число элементов в массиве $phrase (вычисляемое при помощи функции count()) минус единица.

   
 
 автор: BossXP   (08.11.2004 в 23:23)   письмо автору
 
   для: cheops   (08.11.2004 в 20:48)
 

еще одно.... как можно указать определённый шрифт и цвет когда выводятся сообщения?

   
 
 автор: cheops   (08.11.2004 в 23:29)   письмо автору
 
   для: BossXP   (08.11.2004 в 23:23)
 

Это лучше спрашивать в виде отдельного вопроса на параллельном форуме, посвящённом HTML+CSS+JavaScript

http://www.softtime.ru/forum/index.php?id_forum=4

   
Rambler's Top100
вверх

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