我正在尝试从文本文件中读取特定值。我的文本文件如下所示:
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吗? 提前致谢
答案 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]);
答案 1 :(得分:0)
它应该只显示您已经使用的12345
在最后一行之前使用echo
echo preg_replace("/[^0-9]/","",$lines[0]);