Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Сможет ли так одна функция
цитата
01/04/12 в 14:52
 Lexikon
Вот к примеру функция:


function random() {
$quote = file("quotes.txt");
srand((double)microtime()*1000000);
$rand_desc = $quote[rand(0,count($quote)-1)];
return $rand_desc;
}

это случайный вывод из файла.

Но у меня сейчас в коде несколько переменных.

$var1 = file("txtvar1.txt");
$var2 = file("txtvar2.txt");
$var3 = file("txtvar3.txt");

но может и больше до 30, а то и больше.

возможно ли написать одну функцию, чтоб она работала для всех переменных?

к примеру чтоб работало так:

$res1 = random($var1);
echo $res1;
$res2 = random($var2);
echo $res2;
$res3 = random($var3);
echo $res3;

или же придется для каждой переменной писать одинаковый код но с разным файлом данных?
цитата
01/04/12 в 15:09
 Lexikon
похоже нашел выход icon_smile.gif


function random($quote) {
srand((double)microtime()*1000000);
$rand_desc = $quote[rand(0,count($quote)-1)];
//echo $rand_desc."</br>";
//return;
return $rand_desc."</br>";
}



$res1 = random(file("quotes.txt"));
$res2 = random(file("quotes.txt"));
$res3 = random(file("quotes.txt"));

echo $res1;
echo $res2;
echo $res3;

цитата
01/04/12 в 15:46
 FXIX
откуда файлы то приходят? к примеру сканишь папку. на выходе получаешь массив файлов.
их и прогоняй в массиве. читай, бери строку рандомно, пакуй в массив результатов
цитата
01/04/12 в 16:01
 Lexikon
не, тут строго должны тянуться данные
т.е. для $res1 нужно тянуть только из $var1
а для $res2 нужно тянуть только из $var2
впринципе то к чему пришел, устраивает smail54.gif
цитата
01/04/12 в 16:27
 FXIX
ну понятно что строго.

<?php

$files = array('file1', 'file2', 'file3');

foreach ($files as $k => $file) {
// функция function_name
// 1. читает файл
// 2. берет рандомное значение
// 3. возвращает результат
$result[$k] = function_name($file);
}
цитата
01/04/12 в 16:57
 Lexikon
ок, благодарю, посмотрю всё это.
цитата
01/04/12 в 23:20
 idk2045
нафиг сранды
Код:
function random($filename) {
  $lines = file($filename);
  return $lines[array_rand($lines)];
}

echo random('file1.txt');
echo random('file2.txt');
цитата
02/04/12 в 05:30
 Kors
Lexikon писал:
похоже нашел выход icon_smile.gif

только в функцию логичнее передавать не прочитаный файл, а имя - пусть она его сама внутри читает.

или как grozny: предложил.


Эта страница в полной версии