【问题标题】:Reading text file and assigning key pair value in variable in PHP在 PHP 中读取文本文件并在变量中分配密钥对值
【发布时间】:2018-09-16 18:08:04
【问题描述】:

我想读取文本文件并将左侧变量分配给右侧值。我可以正确读取文本文件中的值,但无法回显 $variable1。

文本文件:

variable1="value91";
variable2="value92";
variable3="value93";
variable4="value94";
variable5="value95";

尝试过的代码:

$myfile = fopen("/var/myfile", "r");
while (!feof($myfile)) {
    $line = fgets ($myfile);
    echo "$line<br/>";
}
fclose ($myfile);

这会打印行值并且可以解析,但是我如何为键分配值,所以每当我使用时:

问题:

echo $variable1; which will print "value91"?

如果无法动态使用文件,我当然可以在读取文本文件后静态分配值给变量 1、变量 2。

【问题讨论】:

  • 任何时候你的大脑开始沿着“在循环中动态命名变量”路径,想一想“数组”。几乎所有编程语言都是如此。
  • 你能给我一些代码提示吗?

标签: php file


【解决方案1】:

抱歉,如果这有错误。好久没写php了。类似于以下内容(基于我对此使用数组的评论):

$myfile = fopen("/var/myfile", "r");
while (!feof($myfile)) {
    $line = fgets ($myfile);
    $lineA = explode("=", $line);
    $data[$lineA[0]]=$lineA[1];;
}
fclose ($myfile);

使用explode 将行的键和值分解为一个数组。

然后将来自explode 的键/值对添加到新的$data 数组中。

现在关闭文件后,您可以根据密钥获取值:

echo $data["variable1"];

应该回显value91

【讨论】:

    【解决方案2】:

    您可以使用将字符串用作赋值目标的能力,所以...

    <?php
    error_reporting ( E_ALL );
    ini_set ( 'display_errors', 1 );
    
    $lines = file('data.txt', FILE_IGNORE_NEW_LINES);
    foreach ( $lines as $line ) {
        $data = explode("=", $line);
        $varName = $data[0];
        $$varName = $data[1];
    }
    
    echo $variable1;
    

    注意赋值使用的是$$varName,所以它使用第一列作为变量名。

    这个输出-

    "value91"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-08
      • 2013-07-15
      • 1970-01-01
      • 1970-01-01
      • 2013-08-07
      • 1970-01-01
      • 2023-03-30
      相关资源
      最近更新 更多