我在文本文件中有以下数据
375020222511963
284970411563422
290245594366931
我需要从上面的文本文件中检索一个随机变量。
我使用以下php代码来执行此操作
<?php
$file = file("file.txt");
$len = count($file);
$rand = rand ( 0, $len-1 );
echo $file[$rand];
?>
但它正在返回新行以及检索到的数据。我需要在没有换行的情况下检索数据。
答案 0 :(得分:6)
file()
函数有一个可选的第二个参数,它带有bit mask个标志,这些标志会影响数组中返回的内容。
可用标志为FILE_USE_INCLUDE_PATH
,FILE_IGNORE_NEW_LINES
和SKIP_EMPTY_LINES
。 FILE_IGNORE_NEW_LINES
是您要使用的 $file = file("file.txt", FILE_IGNORE_NEW_LINES);
,以使数组不中的每一行都包含尾随换行符。
因此,您的代码行应如下所示。
{{1}}
说明和更多信息,请参阅http://php.net/file。
答案 1 :(得分:5)
将最后一行更改为:
echo trim($file[$rand]);
trim()
从字符串的开头和结尾删除空格(空格,换行符,制表符)。
为了避免空行...如果最后一行总是唯一的空行:
$rand = rand (0, $len - 2); // Instead of -1
否则,如果到处都有空行,请用以下代码替换最后两行代码:
do {
$rand = rand (0, $len - 1);
} while (trim($file[$rand]) == '');
echo $file[$rand];