使用PHP从文本文件中检索的数据中删除新行

时间:2012-01-29 11:58:43

标签: php

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

375020222511963
284970411563422
290245594366931

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

我使用以下php代码来执行此操作

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

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

2 个答案:

答案 0 :(得分:6)

file()函数有一个可选的第二个参数,它带有bit mask个标志,这些标志会影响数组中返回的内容。

可用标志为FILE_USE_INCLUDE_PATHFILE_IGNORE_NEW_LINESSKIP_EMPTY_LINESFILE_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];