代码之家  ›  专栏  ›  技术社区  ›  M. Suleiman

从.txt文件或包含变量中消息的PHP页面中随机选取消息,并将它们发布到另一个页面

  •  0
  • M. Suleiman  · 技术社区  · 14 年前

    我想要超过5条这样的信息/通知。我怎么能这么做?我怎样才能从一个.txt文件中选择它们,或者从另一个PHP页面中导入它们,该页面将这些消息存储在变量中到“抢劫”页面中。。。

    如果你能用OOP。。。:)

    3 回复  |  直到 14 年前
        1
  •  1
  •   Daniel Vandersluis    14 年前

    将消息放入一个文件中,每行一条消息,然后可以使用 file . 这个 FILE_IGNORE_NEW_LINES 标志将从返回的数组中每个元素的末尾剥离换行符。那你就可以了 shuffle 数组以使其随机化。

    $messages = file('messages.txt', FILE_IGNORE_NEW_LINES);
    shuffle($messages);
    $message = $message[0]; // get the first of the shuffled $messages
    
        2
  •  3
  •   Evert    14 年前

    这是一个接受字符串(文件名)并从中读取消息的函数。然后它以数组的形式返回消息,以便您可以在应用程序中使用它们。

    <?php
    function loadMessagesFromFile($file)
    {
        if(!file_exists($file))
        {
            return false;
        }
    
        $fh       = fopen($file, 'r');
        $messages = array();
    
        while($data = fgets($fh))
        {
            $messages[] = $data;
        }
    
        fclose($fh);
    
        return $messages;
    }
    
    $messages_from_file = loadMessagesFromFile('messages.txt');
    $key = array_rand($messages_from_file);
    echo $messages_from_file[$key];
    

    另一种选择是将消息存储在PHP中:

    <?php
    $messages = array('message', 'another message');
    $key = array_rand($messages);
    echo $messages[$key];
    
        3
  •  2
  •   Capt Otis    14 年前

    我看不出对一个对象有什么特别的需要,只是一个函数。。。

    function message(){
    $mes = array("Message 1","Message 2","Message 3","Message 4");
    shuffle($mes);
    return $mes[0];
    }
    

    这将给你一个随机消息,其中一个你放在数组中。你可以随意留言。

    或者。。。

    你可以按照你的要求做一个包含文件。我会再次将它们存储在include文件中的一个数组中,然后返回一条随机消息。

    $mes = array("Message 1","Message 2","Message 3","Message 4");
    

    索引.php

    include('messages.php');//be sure to include path to messages.php
    shuffle($mes);
    echo $mes[0];//will echo a random message