我有些日子面临严重的问题。尝试从 something.txt 文件中分解每一行并创建一个数组。但阵列结构不像我想要的那样。我的代码如下:
for ( $i=0; $i<count($_FILES['data']['name']['Question']['uploadfiles']); $i++) {
foreach(file($_FILES['data']['name']['Question']['uploadfiles'][$i]) as $line) {
$LineData[] = explode("\n",$line);
}
}
某些文件会丢失正确的数组结构。就像
Array
(
[0] => Array
(
[1] =>
A. Hemophilia A
B. Hemophilia B
[2] => C. Von Willebrand disease
D. Idiopathic thrombocytopenic purpura
)
)
但我想要这样的数组结构:
Array
(
[0] => Array
(
[1] => A. Hemophilia A
[2] => B. Hemophilia B
[3] => C. Von Willebrand disease
[4] => D. Idiopathic thrombocytopenic purpura
)
)
答案 0 :(得分:2)
尝试使用回车"\r"
代替换行符"\n"
。
根据this文章,Mac在这方面与Windows和Linux不同。
答案 1 :(得分:0)
将以下内容保存在PHP
文件中,然后在本地服务器中运行并进行测试
<?php
if(isset($_POST['submit'])){
$contents = file_get_contents($_FILES['file']['tmp_name']);
$filearray = explode("\n", $contents);
echo '<pre>'; print_r($filearray);
}
?>
<!DOCTYPE html>
<html>
<body>
<form enctype="multipart/form-data" method="post" name="uploadForm">
<input type="file" name="file" />
<input type="submit" name="submit" value="Add" />
</form>
</body>
</html>
答案 2 :(得分:0)
file
函数已经分成行。没有理由explode
除非你想分开每一行。
在您的情况下,file
来电就足够了,甚至不需要foreach
:
$lineData = file($_FILES['data']['name']['Question']['uploadfiles'][$i]);