我有两个需要打开的文件,我正在使用php文件来阅读它们
$lines = file('/home/program/prog_conf.txt');
foreach ($lines as $line) {
$rows = preg_split('/\s+/', $line);
其次是:
$lines = file('/home/domain/public_html/base/file2.cfg');
foreach ($lines as $line) {
$rows = preg_split('/=/', $line);
当我处理这两个文件时,我需要从第二个文件中提取信息,我将其分隔=,但是,我不确定这是最好的事情。我想从数据库中添加数据检查。 db详细信息在第二个文件中,如下所示:
dbname = databasename
dbuser = databaseuser
dbpass = databasepassword
如果我回显$ rows [2],我会在一行中获取所有需要的信息,而不是单独的行。含义:
databasename databaseuser databasepassword
如何分割信息以便我可以逐个使用这些条目?
答案 0 :(得分:0)
怎么样:
$lines = file('/home/domain/public_html/base/file2.cfg');
$all_parts = array()
foreach ($lines as $line) {
//explode pulls apart a string based on the first value, so you could change that
//to a '=' if need be
array_merge($all_parts,explode(' ', $line));
}
这将使文件的所有部分(一次一个)进入数组。这就是我认为你想要的。
答案 1 :(得分:0)
也许这种方法有帮助:
首先,因为我看到你的第二个文件有多行,所以会做的是这样的: 假设每个键都是“db”,我们可以做这样的事情。
$file = fopen("/home/domain/public_html/base/file2.cfg", "rb");
$contents = stream_get_contents($handle); // This function return better performance if the file isn't too large.
fclose($file);
// Assuming this is your return from the file
$contents = 'dbname = databasename dbuser = databaseuser dbpass = databasepassword';
$rows = preg_split('/db+/', $contents); // Splinting keys "db"
$result = array();
foreach($rows as $row){
$temp = preg_replace("/\s+/", '', $row); // Removing extract white spaces
$temp = preg_split("/=/", $temp); // Splinting by "="
$result[] = $temp[1]; // Getting the value only
}
var_dump ($result);
我希望这有助于您尝试使用此代码,但可能只需稍加修改即可。