Выбор случайной строки из файла

Тема в разделе "PHP программирование", создана пользователем pushok, 24 янв 2007.

  1. pushok

    pushok Гость

    Вопрос к профи в ПХП
    Я уже всю голову разбил, я начинающий - может что-то не догоняю,но я не пойму как это сделать.
    Мне нужно из файла выбрать случайную строку и записать ее в отдельную переменную для дальнейшей обработки.
    Файл:
    word1=slovo1
    word2=slovo2
    word3=slovo3
    ...
    Кусок затруднительного кода:
    <?
    ...
    $file = fopen("file.txt", "r");
    $line= //со случойно выбранной строкой из файла
    fclose ($file);
    $list=list($word, $slovo) = split("=", $line);
    ...
    ?>
    Что можно сделать с этим кодом?
    Может как-то изменить файл, добавить какие-нибудь якоря.

    ЗЫ. пробовал через fgets() - он читает только первую строку, а надо чтоб читал весь текст и выдавал случайную строку.
     
  2. webmasta

    webmasta Гость




    <?php

    $words = file("file.txt");

    shuffle($words);

    $sting = explode("=", $words[0]);

    $word = ereg_replace ('\n','',$sting[0]);


    ?>

    если я правильно понял
     
  3. korvin0

    korvin0 Гость

    webmasta, у тебя несколько ошибок в коде, кроме того он медленнее моего будет :angry:

    Надо так:
    $f = file('file.txt'); // $f - массив всех строк файла
    $n = rand(0,count($f)-1); // генерируем номер случайной строки
    $rstr = trim($f[$n]); // читаем эту строку и сразу убираем пробельные символы спереди и в конце
    $exstr = explode('=', $rstr); // теперь $exstr === array(0=>'word1', 1=>'slovo1')

    да, и если файл ооочень большой, то file() будет тормозить. Тады надо fopen, strpos и substr использовать. ну это насколько я понимаю тебе не надо, автор темы =)
     
  4. GOsha

    GOsha Гость

    Народ, смотрите на WoWeb.ru
    Там этих рандомизаторов - чем хошь жуй.
     
  5. Holger Dee Assuran

    Holger Dee Assuran Гость

    У меня похожая проблема. Только я загружаю список данных об изображениях из MySQL.
    1. Имя файла
    2. Подпись картинки - если пользователь их отключил
    3. Всплывающая подсказака - всплывает при наведении на картинку
    4. Процент показа

    На странице я вызываю функцию которая принимает список картинок, содержащий эти значения, и выводит одну картинку из списка.
    Выбрать случайную картинку из набора не составляет труда. Мне же необходимо учесть при выборе картинки ее процент показа. Причем если процент равен 0 - картинка не выводится, если же равен 100 - то выводится только она.
    Здесь я придерживаюсь допущения что сумма процентов показа картинок в списке равна 100.

    Есть какие нибудь идеи как это реализовать? А то я уже дня три думаю - видно опыта нехватает...
     
  6. aka_Kail

    aka_Kail Гость

    Хмммм...
    если база -Мускул, надо составить запрос..
    Примерно так...

    SELEKT * FROM ваша таблица WHERE procent=100 xor (SELEKT * FROM ваша таблица WHERE procent>0 and procent!=100)

    Вывод должен дать или одну строку, или несколько...
    колич-во затронутых строк легко узнать при помощи mysql_num_rows
    Должно сработать...
     
Загрузка...

Поделиться этой страницей