问题:
我有一个包含以下行的文本文件:
预期输出:
包含关键字的数组:leg,skincover,weight,intelligence,speed
其他信息:
应该忽略以斜杠开头的所有内容。
问题:
注意:
我不是在寻找代码,只是关于最终会导致解决方案的相关PHP函数的建议。
答案 0 :(得分:1)
对于阅读文件,您可以使用众多内置函数之一。
$fh = fopen("myfile", "r");
while (!feof($fh)) {
$line = fgets($fh);
echo $line;
}
fclose($fh);
这些是在上面的代码中执行的步骤:
$fh
是文件句柄并存储对文件本身的引用while()
条件会检查您是否已到达EOF(文件结束)while()
条件评估为TRUE
并打印$line
方法2 - 使用file()
:
您可以使用此功能将整个文件读入数组。它非常实用,是短文件的理想解决方案。此函数将返回由行分隔的字符串数组。
$arrayOfLines = file('myfile');
非常简单。现在,您可以简单地使用foreach
循环遍历这些行并执行您想要的操作。
检测特定角色的最后一次出现:
有一个内置函数 - strrchr()
从PHP手册:
此函数返回haystack的一部分,该部分从最后一次出现的针开始,直到haystack结束。
您可以将其与strpos()
,substr()
和其他string manipulation functions结合使用,以检索所需的文字。
希望这有帮助!
答案 1 :(得分:0)
这是我写的解决方案,不确定它是否是最优的解决方案。
<?php
$file = file('Creatures_rich.txt');
foreach($file as $line_nums => $line)
{
if (strpos($line, '/') == TRUE)
{
$target = explode("\t", trim($line));
foreach ($target as $key => $value)
{
if (substr($value, 0, 1) != '/')
{
$keywords[] = $value;
}
}
break;
}
}
echo "<xmp>".print_r($keywords, true)."</xmp>";
?>