让我们说文本文件"data1.txt"包含:
56715||Jim||Green||19
5678||Sara||Red||92
53676||Mark||Orange||6
56787||Mike||Purple||123
56479||Sammy||Yellow||645
56580||Martha||Blue||952
ect...
.
.
Run Code Online (Sandbox Code Playgroud)
我想只回应以"5678 ||"开头的行."5678"是确切的$ refVal或参考值.该行应显示如下:
My name is: $nameVar
My color is: $colorVar
My number is: $numVar
Run Code Online (Sandbox Code Playgroud)
谢谢...
$fh = fopen('data1.txt', 'r') or die('Unable to open data1.txt');
while($line = fgetcsv($fh, 0, '||')) {
if ($line[0] == 5678) {
echo <<<EOL
My name is: $line[1]
My color is $line[2]
My number is $line[3]
EOL;
break; // if there's only ever one '5678' line in the, get out now.
}
}
fclose($fh);
Run Code Online (Sandbox Code Playgroud)
备用版本,如下面Jared所建议的那样.可能会更快,因为它只在实际匹配的行上创建数组,而不是像fgetcsv版本那样对每行进行创建.
$fh = fopen('data1.txt', 'r') or die('Unable to open data1.txt');
while($line = fgets($fh)) {
if (strpos($line, '5678||') === 0) { // only if right at start of string
$data = explode('||', $line);
echo <<<EOL
my name is blah blah blah
EOL;
break;
}
}
Run Code Online (Sandbox Code Playgroud)