我觉得我快到了.这是一个.txt文件,大约60千字节,充满德语单词.每个字都在新的一行.
我想用这段代码迭代它:
<?php
$file = "GermanWords.txt";
$f = fopen($file,"r");
$parts = explode("\n", $f);
foreach ($parts as &$v)
{
echo $v;
}
?>
Run Code Online (Sandbox Code Playgroud)
当我执行这段代码时,我得到:Resourceid#2
资源这个词不在.txt中,我不知道它来自哪里.
如何设置显示txt中的所有单词?
$file = "GermanWords.txt";
$contents = file_get_contents($file);
$lines = explode("\n", $contents); // this is your array of words
foreach($lines as $word) {
echo $word;
}
Run Code Online (Sandbox Code Playgroud)
fopen()只是打开文件,它不会读取它 - 在您的代码中,$f包含文件句柄,而不是文件内容.这就是"资源"这个词的来源; 它是PHP文件句柄的内部名称.
一个答案是替换fopen()为file_get_contents().这将打开并在一个操作中读取文件.这样可以解决问题,但是如果文件很大,你可能不想一次性将整个内容读入内存.
所以我建议改为使用SplFileObject().代码如下所示:
<?php
$file = "GermanWords.txt";
$parts = new SplFileObject($file);
foreach ($parts as $line) {
echo $line;
}
?>
Run Code Online (Sandbox Code Playgroud)
它只能在一行读入内存,因此您不必担心文件的大小.
希望有所帮助.
有关详细信息,请参阅PHP手册:http://php.net/manual/en/splfileobject.construct.php
| 归档时间: |
|
| 查看次数: |
7391 次 |
| 最近记录: |