如何从文本文件中读取数组?

时间:2017-12-13 13:28:39

标签: php arrays

我是PHP的新手,我正在尝试构建一种类型的生成器。我开始用硬编码不同的数组值。因此,“()”之间的所有内容都是我要存储在文本文件中的内容。但是我看不出应该怎么做。

实施例。 $num = array (0,1,2,3,4,5,6,7,8,9); 数字0-9是我想要的数组来自文本文件而不是。 与$spec = array ('!','#','%','&','?');

相同

以下是我现在的表现:

<?php 
    $pass = array();
    $verb = array ('Klappa', 'Springande','Bakande', 'Badande',
    'Cyklande', 'Jagande', 'Skrattande', 'Flygande', 'Simmande','Gissande');
    $num = array (0,1,2,3,4,5,6,7,8,9);
    $sub = array ('katt', 'hund','fisk', 'padda', 'lama', 'tiger','panda', 'lejon', 'djur', 'telefon');
    $spec = array ('!','#','%','&','?');
    $pass[] = $verb[array_rand($verb)];
    for($i=0;$i<1;$i++){
        $pass[] = $num[array_rand($num)];
    }
    $pass[] = $sub[array_rand($sub)];
    for($i=0;$i<1;$i++){
        $pass[] = $spec[array_rand($spec)];
    }
    //shuffle($pass);
    foreach($pass as $p){
        $password .= $p;
    }
    // echo "$password <br>";
?>

我不希望('!','#','%','&','?');显示在代码中,也希望从文本文件中读取。我该怎么办?

2 个答案:

答案 0 :(得分:1)

如果你正在写一个文件,你可以:

<?php
    foreach(range(0,9) as $number){
        $output .= $number . PHP_EOL;
    }

    file_put_contents('textfile.txt', $output);

?>

将以下列格式输出到textfile.txt:

0
1
2
3
4
5
6
7
8
9

将其读回数组,然后可以

<?php

    $input = file_get_contents('textfile.txt');

    $num = [];
    $num = explode(PHP_EOL,$input);

    //Take the blank element off the end of the array
    array_pop($num);

    echo '<pre>';
        print_r($num);
    echo '</pre>';

?>

将为您提供输出

Array
(
    [0] => 0
    [1] => 1
    [2] => 2
    [3] => 3
    [4] => 4
    [5] => 5
    [6] => 6
    [7] => 7
    [8] => 8
    [9] => 9
)

读取您可以调用的号码

<?php

    foreach($num as $number){
        //You can do whatever you want here, but i'm just going to print number
        echo $number;
    }

?>

会给你

0123456789

我知道有更简单的方法,但这样做,所以OP可以看到发生了什么。

答案 1 :(得分:0)

您可以做的是创建文件,然后逐行插入所需的字符。 您可以使用此代码段读取文件并将值插入数组:

<?php
    $handle = @fopen("/file.txt", "r");
    //declare your array here
    if ($handle) {
        while (($buffer = fgets($handle, 4096)) !== false) {
            //add $buffer to your array.
        }
        fclose($handle);
    }
?>

您可能需要查看this as a reference