Рандомно строки из файла

Тема в разделе "PHP", создана пользователем molp, 16 дек 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. molp

    molp Создатель

    Регистр.:
    23 янв 2008
    Сообщения:
    27
    Симпатии:
    2
    Помогите пожалуйста нужен код чтобы загружались рандомно строки из файла с именем base.txt c содержимым вида:

    <a href="1"><img src="1"></a>
    <a href="2"><img src="2"></a>
    <a href="3"><img src="3"></a>
    ...
    <a href="n"><img src="n"></a>
     
  2. General Fizz

    General Fizz Боевой Генерал :)

    Регистр.:
    11 апр 2007
    Сообщения:
    753
    Симпатии:
    396
    Если файл относительно небольшой, скажем до 100-500-1000кБ, проще всего сделать так:
    PHP:
    $temp=array();

    $temp=file('base.txt');
    $size_temp=sizeof($temp);

    // Здесь вывод случайной строки из base.txt
    echo $temp[mt_rand(0,$size_temp-1)];
     
  3. Юрик

    Юрик Постоялец

    Регистр.:
    2 фев 2008
    Сообщения:
    74
    Симпатии:
    2
    $temp=array(); строка не нужна...

    Добавлено через 1 минуту
    ещё можно сделать так:

    $array = file("data.txt");
    shuffle($array);
    echo $array[0];
     
  4. General Fizz

    General Fizz Боевой Генерал :)

    Регистр.:
    11 апр 2007
    Сообщения:
    753
    Симпатии:
    396
    Перемешать массив каждый раз выйдет гораздо тормознутее и затратнее по памяти, чем выбирать случайное значение.

    Что же касается инициализации переменной $temp, то это правила хорошего тона в программировании.
     
  5. admLoki

    admLoki генератор случайного PHP

    Регистр.:
    14 сен 2006
    Сообщения:
    481
    Симпатии:
    93
    Полковник, а почему не array_rand()?
     
  6. JSilver

    JSilver Постоялец

    Регистр.:
    18 апр 2006
    Сообщения:
    107
    Симпатии:
    49
    Юрик, вариант полковника мне думается быстрее отработает чем рандомизация всего массива. Хотя если нагрузка маленька - то без разницы.
     
Статус темы:
Закрыта.