0
我有这个文本文件阅读文件和分裂与分隔符
acmst501:57:Runningacmst506:201:Runningacmst506:203:Runningacmst506:209:Runningacmst506:213:Failed
,我想用分隔符分割。我有这个代码工作。
<?php
function parseFile($filename, $delimiter) {
global $splitcontents;
//$fd = fopen ($filename, "r");
//$contents = fread ($fd,filesize ($filename));
//fclose ($fd);
$contents = file_get_contents($filename);
$splitcontents = explode($delimiter, $contents);
return $splitcontents;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Read file and split with delimiter</title>
</head>
<body>
<?php
parseFile("c:\emap\asrvr505-cslot_state.txt",":");
foreach ($splitcontents as $value) {
echo "<b>$value<br>";
}
?>
</body>
</html>
和输出我得到的是这样的:
acmst501
57
Running acmst506
201
Running acmst506
203
Running acmst506
209
Running acmst506
213
Failed
不过,我想它是这样的:
acmst501
57
Running
acmst506
201
Running
...
所以基本上,我想在运行单独的/失败的部分来自acmst字段。
我该如何区分这些?另外,我的函数是否正确,以便可以将它用于同一个PHP文件中的不同文件?谢谢!
嗨阿里尔。谢谢!是的,'Runningacmst506'之间没有分隔符,但我需要将它们分开。好的是acmst部分是恒定的,只有数字被改变。另外,运行部分可能会更改为失败等。 – JudeJitsu 2012-07-19 01:42:05
@JudeJitsu然后使用'explode()'和'acmst'作为分隔符。你最终会得到只有数字,没有单词acmst,但你可以把它放回去。你也可以喜欢正则表达式,但我认为对你来说,最好是写一个循环。虽然如果你想半独立使用带有匿名函数的'array_map()', – Ariel 2012-07-19 01:50:13
我已根据您的建议应用了'file_get_contents'。你的意思是我应该爆炸'$ splitcontents',因为如果我这样做的话,我会一直收到错误。关于'array_map()',我该怎么做? – JudeJitsu 2012-07-19 01:54:01