使用PHP从文本文件中恢复的数据中删除新行

vis*_*hnu 1 php

我在文本文件中有以下数据

375020222511963
284970411563422
290245594366931
Run Code Online (Sandbox Code Playgroud)

我需要从上面的文本文件中检索一个随机变量.

我使用以下PHP代码来做到这一点

<?php 
    $file = file("file.txt");
    $len = count($file);
    $rand  = rand ( 0, $len-1 );
    echo $file[$rand];
?>
Run Code Online (Sandbox Code Playgroud)

但它正在返回新行以及检索到的数据.我需要在没有换行的情况下检索数据.

sal*_*the 6

file()函数有一个可选的第二个参数,它带有一个标志的位掩码,它会影响数组中返回的内容.

可用的标志是FILE_USE_INCLUDE_PATH,FILE_IGNORE_NEW_LINESSKIP_EMPTY_LINES.该FILE_IGNORE_NEW_LINES是你要为了使用具有阵列中的每一行的一个包括尾部的换行符.

因此,您的代码行应如下所示.

    $file = file("file.txt", FILE_IGNORE_NEW_LINES);
Run Code Online (Sandbox Code Playgroud)

说明和更多信息,请参阅http://php.net/file.


lor*_*o-s 5

将最后一行更改为:

echo trim($file[$rand]);
Run Code Online (Sandbox Code Playgroud)

trim() 从字符串的开头和结尾删除空格(空格,换行,制表符).

为了避免空行...如果最后一行总是唯一的空行:

$rand = rand (0, $len - 2); // Instead of -1
Run Code Online (Sandbox Code Playgroud)

另外,如果你可以在任何地方都有空行,请用以下代码替换最后两行代码:

do {
    $rand  = rand (0, $len - 1);
} while (trim($file[$rand]) == '');

echo $file[$rand];
Run Code Online (Sandbox Code Playgroud)