问题:
我有一个包含以下行的文本文件:
- /视角:皮肤覆盖智能腿
- /以上是提供数据文件默认透视的一种方法。
- 腿 皮肤 重量 智力 速度/纬度/lon/url/info
预期产出:
包含关键字的数组:腿、皮肤套、体重、智力、速度
附加信息:
所有以斜杠开头的内容都应忽略。
问题:
- PHP 中有哪些相关函数可用于扫描线条?
- PHP 中有哪些相关函数来检测上次出现的字符/?
通知:
我不是在寻找代码,只是关于最终会导致解决方案的相关 PHP 函数的建议。
对于读取文件,您可以使用许多内置函数之一。
方法 1 -- 使用 fopen()
和 fgets()
:
$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 手册:
此函数返回大海捞针的部分,该部分从最后一次出现针开始,一直到干草堆的末尾。
您可以将其与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>";
?>