我有两个.txt文件需要阅读。这两个文件的内容如下
log.txt
2013/04/20 01:08:11和
data.txt
MANUFACTURER: SISYSTEM
MODELNAME: DX1
BIRTHDATE: 19710108
SEX: M对于log.txt,我需要存储第一行的日期,并将其保存到mySQL数据库中。
对于data.txt,我需要将每一行的信息存储到变量中。即:
$manufacturer = SISYSTEM;
$modelname = DX1;
$birthdate = 19710108;
$sex = M;对于log.txt,我可以使用fget简单地读取第一行并将其存储到一个变量中。但是,对于data.text,我很难弄清楚如何在循环中存储多个变量。到目前为止,我所得到的是这样的,但是我不知道如何将这些值赋值到新的变量中,每次都要经过while循环。任何帮助都是非常感谢的!
<?PHP
$file_handle = fopen("data.txt", "r");
while (!feof($file_handle) ) {
$line_of_text = fgets($file_handle);
$parts = explode(':', trim($line_of_text) );
}
fclose($file_handle);
?>发布于 2013-04-23 20:12:31
你为什么要在变量中使用它们?关联数组("map")是一种更干净的方法。
$result = array();
// Your loop -->
$parts = array_map('trim', explode(':', $line_of_text, 2)));
$result[$parts[0]] = $parts[1];发布于 2013-04-23 20:09:59
使用变量:http://php.net/manual/en/language.variables.variable.php
在while循环中使用:
$line_of_text = fgets($file_handle);
$parts = explode(':', trim($line_of_text), 2);
${strtolower($parts[0])} = trim($parts[1]);发布于 2013-04-23 20:19:04
在while循环中,您可以比较行以查看您必须赋值的变量:PHP: strcmp -手册
<?php
$file_handle = fopen("data.txt", "r");
while (!feof($file_handle) ) {
$line_of_text = fgets($file_handle);
$parts = explode(':', trim($line_of_text) );
if (strcmp($parts[0], "MANUFACTURER")==0)
$MANUFACTURER = trim($parts[1]);
if (strcmp($parts[0], "MODELNAME")==0)
$MODELNAME = trim($parts[1]);
[...]
else
echo "I haven't recognised that: ".$parts[0];
}
fclose($file_handle);
?>也许您可以使用switch语句
<?php
$file_handle = fopen("data.txt", "r");
while (!feof($file_handle) ) {
$line_of_text = fgets($file_handle);
$parts = explode(':', trim($line_of_text) );
switch($parts[0])
case 'MANUFACTUREER':
$manufactureer = $parts[1];
break;
case 'MODELNAME':
$modelname = $parts[1];
break;
[...]
}
fclose($file_handle);
?>https://stackoverflow.com/questions/16178220
复制相似问题