首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用PHP读取.txt文件并将信息存储在变量中

用PHP读取.txt文件并将信息存储在变量中
EN

Stack Overflow用户
提问于 2013-04-23 20:07:08
回答 4查看 7.9K关注 0票数 1

我有两个.txt文件需要阅读。这两个文件的内容如下

log.txt

代码语言:javascript
运行
复制
2013/04/20 01:08:11

data.txt

代码语言:javascript
运行
复制
MANUFACTURER: SISYSTEM
MODELNAME: DX1
BIRTHDATE: 19710108
SEX: M

对于log.txt,我需要存储第一行的日期,并将其保存到mySQL数据库中。

对于data.txt,我需要将每一行的信息存储到变量中。即:

代码语言:javascript
运行
复制
$manufacturer = SISYSTEM;
$modelname = DX1;
$birthdate =  19710108;
$sex = M;

对于log.txt,我可以使用fget简单地读取第一行并将其存储到一个变量中。但是,对于data.text,我很难弄清楚如何在循环中存储多个变量。到目前为止,我所得到的是这样的,但是我不知道如何将这些值赋值到新的变量中,每次都要经过while循环。任何帮助都是非常感谢的!

代码语言:javascript
运行
复制
<?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);

?>
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-04-23 20:12:31

你为什么要在变量中使用它们?关联数组("map")是一种更干净的方法。

代码语言:javascript
运行
复制
$result = array();
  // Your loop -->
  $parts = array_map('trim', explode(':', $line_of_text, 2)));
  $result[$parts[0]] = $parts[1];
票数 7
EN

Stack Overflow用户

发布于 2013-04-23 20:09:59

使用变量:http://php.net/manual/en/language.variables.variable.php

在while循环中使用:

代码语言:javascript
运行
复制
$line_of_text = fgets($file_handle);
$parts = explode(':', trim($line_of_text), 2);
${strtolower($parts[0])} = trim($parts[1]);
票数 3
EN

Stack Overflow用户

发布于 2013-04-23 20:19:04

while循环中,您可以比较行以查看您必须赋值的变量:PHP: strcmp -手册

代码语言:javascript
运行
复制
<?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语句

代码语言:javascript
运行
复制
<?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);
?>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16178220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档