我在文本文件中有以下数据
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)
但它正在返回新行以及检索到的数据.我需要在没有换行的情况下检索数据.
该file()函数有一个可选的第二个参数,它带有一个标志的位掩码,它会影响数组中返回的内容.
可用的标志是FILE_USE_INCLUDE_PATH,FILE_IGNORE_NEW_LINES和SKIP_EMPTY_LINES.该FILE_IGNORE_NEW_LINES是你要为了使用具有阵列中的每一行的一个不包括尾部的换行符.
因此,您的代码行应如下所示.
$file = file("file.txt", FILE_IGNORE_NEW_LINES);
Run Code Online (Sandbox Code Playgroud)
说明和更多信息,请参阅http://php.net/file.
将最后一行更改为:
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)