我不是最擅长 PHP,如果有人能提供帮助,我将不胜感激。基本上我需要解析数据馈送的每一行,并获取每个“|”之间的每一位信息 - 然后我可以将它添加到数据库中。我想我可以通过使用explode从“|”之间获取信息,但是我需要一些帮助来将文本文件中的每一行解析为单数。事实上,为了让它更简单,我只需要它使用变量的每一行,我将使用 textarea 和表单将内容提交给变量。任何帮助将不胜感激!
zuk1
问问题
798 次
5 回答
4
您可以将文件读入行数组并使用以下方法进行所有拆分:
$lines = file("filename");
foreach($lines as $line) {
$parts = explode("|", $line);
// do the database inserts here
}
如果您已经按照您所说的那样将所有文本包含在变量中(例如,使用类似 file_get_contents() 的内容),您可以先在 \n 上展开,然后执行与上述相同的 foreach 语句。
于 2008-10-20T21:49:08.040 回答
2
如果您正在阅读 textarea 帖子,您可以使用explode 函数使用换行符作为分隔符,将变量中的每个“行”作为数组的新元素,然后您可以对数组元素进行explode。
IE
$sometext = "balh | balh blah| more blah \n extra balh |some blah |this blah";
$lines = explode("\n", $sometext);
foreach($lines as $oneLine)
{
$lineElements[] = explode("|", $oneLine);
}
那么你有一个二维数组你的元素。
如果您正在读取文件,则可以简单地使用此处记录的文件函数:
http://us2.php.net/manual/en/function.file.php
将文件的每一行作为数组的元素。
于 2008-10-20T21:51:19.643 回答
0
如果文件很小,您可以使用file()将其读入数组,每个元素一行。
如果失败,请使用fgets()循环读取文件
$handle = fopen("/tmp/inputfile.txt", "r");
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
echo $buffer;
}
fclose($handle);
于 2008-10-20T21:50:02.233 回答
0
您可以使用 explode 来获得两者:
$myFile = "File.txt";
$fh = fopen($myFile, 'r');
$data = fread($fh);
fclose($fh);
$newLines = explode("\n",$data);
foreach($newLines as $s)
{
$parsed = explode("|",$s);
foreach($parsed as $item)
{
// do your db load here
}
}
于 2008-10-20T21:52:33.850 回答