我在我的网站上编写了一个 php 搜索脚本,用于检查文本文件中是否存在某个包(我使用了 file_get_contents
。)它获取用户输入的内容并将其与字符串 'BUILD: ' 下面是该文件的示例,我将在后面的段落中进行解释:
BUILD: packageA
URL: www.package-a.com
BUILD: packageB
URL: www.package-b.com
BUILD: packageC
URL: www.package-c.com
因此,如果用户要搜索“packageB”,它将与“BUILD:”组合,使我正在测试的变量具有值:“BUILD:packageB”。我有一个条件判断该字符串是否存在;一切都进展顺利。
我的疑问/问题是如何列出 URL: 下方的行并带有回显?我一直在用 strlen()
测试一些想法,但我似乎无法理解它,并且文本文件有不同的 strlens 用于输入。如果有这样的事情,有没有办法让 PHP 强制执行 "nextLine()"
...PHP 能识别返回分隔符吗?
谢谢!
最佳答案
// The string you are searching for
$package = 'packageB';
// Get the file into an array
$data = file('myfile.txt');
// Loop the data
for ($i = 0, $found = FALSE; isset($data[$i]); $i++) {
if (trim($data[$i]) == "BUILD: $package") { // We found the one we're looking for
echo trim($data[++$i]); // Echo the next line
$found = TRUE;
break; // Stop looping
}
}
if ($found) {
echo "<br />\nI found the URL on line $i";
} else {
echo "I didn't find it!";
}
file()
以数组形式获取文件数据,其中每个元素都是文件的一行,这与 file_get_contents()
返回的单个字符串不同。
关于PHP nextLine 与字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8243622/