1

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

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。捕获数字后,我打算在路径中使用它..但它在数字前有一个空格。如果您有任何建议,请查看下面的代码并告诉我。

$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/Profit/Jan2010。通过使用上面的代码,我得到 ..../12345/Profit/Jan2010(12345 之前的空格)。我可以在路径中使用 $number 吗?提前致谢

4

2 回答 2

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/Profit/Jan2010。通过使用上面的代码,我得到 ..../12345/Profit/Jan2010(12345 之前的空格)。

这可能是因为$number. 要删除它,您可以使用trim如下:

$number = trim($number);

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

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

演示!

于 2013-09-23T18:27:34.287 回答
0

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

只需在最后一行之前使用 echo

echo preg_replace("/[^0-9]/","",$lines[0]);
于 2013-09-23T18:37:14.007 回答