从文本文件中读取特定值

时间:2013-09-23 18:26:07

标签: php

我正在尝试从文本文件中读取特定值。我的文本文件如下所示:

token = 12345
data = new
...

我想捕获令牌的值。我的php如下:

$myFile = "../data/input.txt";
$lines = file($myFile);//file in to an array
echo $lines[0]; //line 1
preg_replace("/[^0-9]/","",$lines[0]);

输出

  

令牌= 12345

但我想捕获 12345 。 捕获数字后,我打算在路径中使用它..但是它在number之前给出了空格。请通过下面的代码告诉我,如果你有任何建议。

$myFile = "../data/input.txt";
$lines = file($myFile);//file in to an array
list($token, $number) = explode('=', $lines[0]);
$dir = "C:/wamp/.../$number/Profit/Jan2010";
if ($handle = opendir($dir)) {
 while (false !== ($file = readdir($handle))) {
  if ($file != "." && $file != "..") {
   echo "<a href=".$dir."/".$file.">$file</a><br/>";
  }
 }
closedir($handle);

我的路径应该是...... / 12345 /利润/ 2010年1月。 通过使用上面的代码,我得到.... / 12345 /利润/ Jan2010(12345之前的空格)。 我可以在路径中使用$ number吗? 提前致谢

2 个答案:

答案 0 :(得分:2)

好像你没有正确使用preg_replace的输出。

这个数字实际上存储在$lines[0];中,但你只是回应而不是将其存储在变量中。

以下内容应该有效:

$number = preg_replace("/[^0-9]/","",$lines[0]);
echo $number;

或者,您也可以使用explode()(在某些情况下可能会更有效)将字符串拆分为分隔符:

list($token,  $number) = explode('=', $lines[0]);
echo (int) $number;

<强>更新

  

我的路径应该是...... / 12345 /利润/ 2010年1月。通过使用上面的代码,我得到.... / 12345 /利润/ Jan2010(12345之前的空格)。

这可能是因为$number中的空格。要删除它,您可以使用trim,如下所示:

$number = trim($number);

或者,在分隔符中包含空格:

list($token, $number) = explode(' = ', $lines[0]);

Demo!

答案 1 :(得分:0)

它应该只显示您已经使用的12345

在最后一行之前使用echo

echo preg_replace("/[^0-9]/","",$lines[0]);