【问题标题】:Reading text after a certain character in php在php中某个字符之后读取文本
【发布时间】:2013-06-26 21:15:26
【问题描述】:

好的,所以我有一个文本文件,在文本文件中我有以下几行:

IP = 127.0.0.1
EXE = Client.exe
PORT = 8080
TITLE = Title
MAINT = False
MAINT-Message = This is the message.

我想要做的是在第五行得到'False'部分。

我有基本概念,但我似乎无法让它发挥作用。这是我尝试过的:

<?php
$file = file_get_contents('LauncherInfo.txt');
$info = explode(' = ', $file);

echo $info[5];
?>

这样我得到了一个结果,但是当我回显 $info[5] 时,它给了我“错误维护消息”,因此它会拆分它,但它只会在 = 符号处拆分。我希望能够在我按下回车键进入下一行的位置拆分它。这可能吗?我该怎么做?

我想如果我让它在第一行爆炸然后用循环对第二行做同样的事情直到它到达文件末尾,它会起作用吗?不过我不知道该怎么做。

谢谢。

【问题讨论】:

  • 如果您使用 file() 而不是 file_get_contents() 您将拥有一个可以迭代的数组,或者通过行号 (-1) 作为数组键引用
  • 根本不要使用explode。考虑一个正则表达式或 parse_ini_file。
  • 如果您使用 parese_ini_file,请注意 False 将返回一个空字符串
  • 只需使用我的答案from here 并将模式更改为#(.*?)\s*=\s*(.*)#m
  • 谢谢大家。有不同的方法来做到这一点。我现在明白了。

标签: php explode


【解决方案1】:

我认为您正在寻找 file(),它将文件的内容拆分为文件行的数组。

试试这个:

$file = file('LauncherInfo.txt');
foreach ($file as $line) {
    if ($line) {
        $splitLine = explode(' = ',$line);
        $data[$splitLine[0]] = $splitLine[1];
    }
}
echo $data['MAINT'];

【讨论】:

  • 哦,这行得通。非常感谢。研究了好几个小时。
【解决方案2】:

以防你好奇,因为我不知道 file() 函数。你可以像这样手动完成

<?php
$file = file_get_contents('LauncherInfo.txt');
$lines = explode("\n", $file);
$info=array();
foreach($lines as $line){
  $split=explode(' = ',$line);
  $info[]=$splitline[1];
}
echo $info[5];//prints False
?>

【讨论】:

    猜你喜欢
    • 2011-10-22
    • 2015-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-27
    相关资源
    最近更新 更多