问题:
我有一个包含以下行的文本文件:
- /透视:skincover智能腿
- /以上是一种使用数据文件提供默认透视图的方法。
- 腿 skincover 体重 智力 速度 /lat /lon /url /info
预期输出:
包含关键字的数组:腿、皮肤覆盖、体重、智力、速度
附加信息:
以斜线开头的所有内容都应被忽略。
问题:
- PHP中用于扫描行的相关函数有哪些?
- PHP中检测字符/的最后出现的相关函数是什么?
注意:
我不是在寻找代码,只是关于最终会导致解决方案的相关 PHP 函数的建议。
对于读取文件,您可以使用许多内置函数之一。
$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 的一部分,该部分从最后一次出现 needle 开始,一直到 haystack 结束。
您可以将它与strpos(),substr()和其他字符串操作函数结合起来以检索您需要的文本。
希望这可以帮助!
这是我写的解决方案,不确定它是否是最优化的。
<?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>";
?>