Random text - Programmers Heaven

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

Welcome to the new platform of Programmer's Heaven! We apologize for the inconvenience caused, if you visited us from a broken link of the previous version. The main reason to move to a new platform is to provide more effective and collaborative experience to you all. Please feel free to experience the new platform and use its exciting features. Contact us for any issue that you need to get clarified. We are more than happy to help you.

Random text

GameFreak7744GameFreak7744 Posts: 36Member
How would you pick a random piece of text from a text file and store it in a variable?

Comments

  • NeakNeak Posts: 87Member
    : How would you pick a random piece of text from a text file and store it in a variable?
    :
    :
    This is how I would do it... roughly.
    Let's say that the file looks like this:
    [red]foo
    bar[/red]
    [code]<?php
    $fopened = fopen(file, r); //Open the file... just for reading.
    $string = fread(fopened); //Read it into a string.
    $exploded = explode("/r/n", $string); //Separate it by newline into an array.
    $rand = rand(0, count($exploded)); //Randomize a number between 0 and the number of elements of the array.
    echo "The random word is:/n". $exploded[$rand]; // Echo element $rand of array $exploded
    fclose(file); //Close it.
    ?>
    [/code]
    That's how I would do it. It would either echo "foo" or "bar." Now, if you wanted to separate the words by spaces, not new lines, you would just change the "/r/n" to " ".
  • GameFreak7744GameFreak7744 Posts: 36Member
    : : How would you pick a random piece of text from a text file and store it in a variable?
    : :
    : :
    : This is how I would do it... roughly.
    : Let's say that the file looks like this:
    : [red]foo
    : bar[/red]
    : [code]<?php
    : $fopened = fopen(file, r); //Open the file... just for reading.
    : $string = fread(fopened); //Read it into a string.
    : $exploded = explode("/r/n", $string); //Separate it by newline into an array.
    : $rand = rand(0, count($exploded)); //Randomize a number between 0 and the number of elements of the array.
    : echo "The random word is:/n". $exploded[$rand]; // Echo element $rand of array $exploded
    : fclose(file); //Close it.
    : ?>
    : [/code]
    : That's how I would do it. It would either echo "foo" or "bar." Now, if you wanted to separate the words by spaces, not new lines, you would just change the "/r/n" to " ".
    :


    makes sense to me, only one problem - i dont know how to tell it *what* file to open :P
  • NeakNeak Posts: 87Member
    [code]<?php
    $fopened = fopen([blue]file[/blue], r); //Open the file... just for reading.
    $string = fread($fopened); //Read it into a string.
    $exploded = explode("/r/n", $string); //Separate it by newline into an array.
    $rand = rand(0, count($exploded)); //Randomize a number between 0 and the number of elements of the array.
    echo "The random word is:/n". $exploded[$rand]; // Echo element $rand of array $exploded
    fclose(file); //Close it.
    ?>
    [/code]
    : makes sense to me, only one problem - i dont know how to tell it *what* file to open :P

    Replace the word "file" in blue above with the path of the text file you want to look through.
  • GameFreak7744GameFreak7744 Posts: 36Member
    [b][red]This message was edited by GameFreak7744 at 2004-6-23 22:6:25[/red][/b][hr]
    i'm getting some big bad errors that i cant fix:

    Warning: Wrong parameter count for fread() in /home/public2/public_html/indexframe.php on line 25
    ""
    Warning: fclose(): supplied argument is not a valid stream resource in /home/public2/public_html/indexframe.php on line 29

    any ideas?

    EDIT: RE-the second error, um, should it be 'fclose($fopened)' rather than the file path?
  • Johnny13Johnny13 Posts: 128Member
    the parameters of fopen are (string filename,string mode)
    so it's
    [red]'file'[/red],not file
    [red]'r'[/red],not r
    you can also use array_rand function:[code]echo"The random word is:".$exploded[array_rand($exploded)];[/code]
  • GameFreak7744GameFreak7744 Posts: 36Member
    [b][red]This message was edited by GameFreak7744 at 2004-6-25 1:56:42[/red][/b][hr]
    : the parameters of fopen are (string filename,string mode)
    : so it's
    : [red]'file'[/red],not file
    : [red]'r'[/red],not r
    : you can also use array_rand function:[code]echo"The random word is:".$exploded[array_rand($exploded)];[/code]
    :

    yeah. i can also use 'file_get_contents' rather than 'fopen' and then 'fread'

    EDIT:
    I also find it better to use '#' insted of next line or space. however (no matter which kind i use) when it shows the last on in the file it adds a space to the end of it, any ideas how to remove this.
Sign In or Register to comment.