|
|
|
| Всем привет!
вот такой вопрос есть, как следаль случайный ввывод фраз на php
есть 2 файла:
index.php
base.txt
вот чтобы скрипт брал из base.txt допустим 1 строчку и вставляв в index.php?
С уважением, BossXP | |
|
|
|
|
|
|
|
для: BossXP
(08.11.2004 в 20:16)
| | Все фразы находятся в первой строке файла base.txt? | |
|
|
|
|
|
|
|
для: cheops
(08.11.2004 в 20:32)
| | нет,
она распределены по строкам например:
Фраза1
Фраза2
Фраза3
Фраза4
и т.д | |
|
|
|
|
|
|
|
для: BossXP
(08.11.2004 в 20:47)
| | Тогда в скрипте ниже "," нужно заменить на "\n". | |
|
|
|
|
|
|
|
для: 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. | |
|
|
|
|
|
|
|
для: cheops
(08.11.2004 в 20:48)
| | Ясно... Спасибо!
только вот эти 2 строчки непонял:
$bufer = fread($fd,filesize($filename));
$index = rand(0,count($phrase)-1);
разъясните пожалуйста.! | |
|
|
|
|
|
|
|
для: 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()) минус единица. | |
|
|
|
|
|
|
|
для: cheops
(08.11.2004 в 20:48)
| | еще одно.... как можно указать определённый шрифт и цвет когда выводятся сообщения? | |
|
|
|
|
|
|
|
для: BossXP
(08.11.2004 в 23:23)
| | Это лучше спрашивать в виде отдельного вопроса на параллельном форуме, посвящённом HTML+CSS+JavaScript
http://www.softtime.ru/forum/index.php?id_forum=4 | |
|
|
|