在PHP中拆分大文件

时间:2013-11-07 02:31:42

标签: php bigdata

我有表格:

<form method="post">
<textarea name="add" cols="50" rows="20"></textarea>
<br>
<input type="submit" formaction="make.php" value="MAKE"><br><br><br>
</form>

我使用此表单发布了几行,例如:

lala
lalal12
blabla

我也有大的txt文件words.txt。我需要从这个文件中随机取1000行并将它们放入lala.txt,lalal12.txt,blabla.txt-1000个不同的随机行到每个文件。 我试着这样做:

<?php
$words = file_get_contents('words.txt');

$add = $_POST[add];

if (isset($add)) {
$arr = explode( "\n", $add); 
foreach($arr as $row)   {
    shuffle($words);
    $out = array_slice($words, 0, 1000);
    $out = implode("\n", $out);
    file_put_contents($row.'.txt', $out);
}
}

但它不起作用。请帮帮我。

1 个答案:

答案 0 :(得分:1)

您的代码未运行,因为isset($add)返回false。在第$add = $_POST[add];行中,您将$add分配给$_POST元素的值,其值为常量add,该值不存在。您需要在其周围加上引号以正确访问键值:

$add = $_POST['add']; // access the POST value for key "add"

这也可行,但实际上并不是正确的方法,请将其放在此处以突出显示您使用add作为常量:

define('add', 'add'); // set the constant add to the string value "add"
$add = $_POST[add];   // access the POST value