Php 在第一个';之后获取文本:';

Php 在第一个';之后获取文本:';,php,Php,在txt文件中,有以下内容: Field1:Field2:Field3:Field4 Data1:Data2:Data3:Data4 如何使用PHP获取“Field1”之后的文本,即“Field2”,而不获取“Field3”之前的“:” 注意:“字段”不是一个常量字符串 编辑:我想做一些事情,比如搜索“Field2”并只在它的行上执行。所以我也不想为“数据”这样做! 谢谢。编辑:我想问这个问题的主要目的是: 忽略如果您想要答案,答案如下: 我正在为我的项目开发一个AdminCP,如果管理员

在txt文件中,有以下内容:

Field1:Field2:Field3:Field4
Data1:Data2:Data3:Data4
如何使用PHP获取“Field1”之后的文本,即“Field2”,而不获取“Field3”之前的“:”

注意:“字段”不是一个常量字符串

编辑:我想做一些事情,比如搜索“Field2”并只在它的行上执行。所以我也不想为“数据”这样做! 谢谢。

编辑:我想问这个问题的主要目的是:


忽略如果您想要答案,答案如下:
我正在为我的项目开发一个AdminCP,如果管理员在AdminCP中以HTML形式键入“User1”,那么如果txt文件中的行是“User1:suspended:24/01/2012”,则必须返回“This user is suspended!”

而txt文件中的用户格式为:

USERNAME:STATUS:REGISTRATION DATE
User1:suspended:24/01/2012
(所有文本和字符串都只是示例)

所以在下面的答案中<代码>$searchfor='Field2'必须是
$searchfor=$\u POST['username']例如

我想用:

if( $data[1]=="suspended" ) {
    echo "The user which owns ".$data[0]." is suspended!";
}
$data[0]是用户名(User1),而$data[1]是状态(suspended)


感谢@MagnusEriksson和。我自己刚刚发现了解决方案:

<?php
$file = 'test.txt';
$searchfor = 'Field2';

// the following line prevents the browser from parsing this as HTML.
header('Content-Type: text/plain');

// get the file contents, assuming the file to be readable (and exist)
$contents = file_get_contents($file);
// escape special characters in the query
$pattern = preg_quote($searchfor, '/');
// finalise the regular expression, matching the whole line
$pattern = "/^.*$pattern.*\$/m";
// search, and store all matching occurences in $matches
preg_match_all($pattern, $contents, $matches);

$wholeLine = implode("\n", $matches[0]);
$data = explode(":", $wholeLine);
echo $data[0]; // Field1
echo $data[1]; // Field2
?>


您可以结账并试一试。。。顺便说一句,你的通知是什么意思?@MagnusEriksson-有例子吗?在这个链接上有几个例子(点击explode()-单词)。只要读一读,试一试,如果你卡住了,回来给我们看看你尝试了什么。这不是一个免费的编码服务。我们不能为你编码,如果你不能测试这样一个简单的函数,你应该学习一些课程。@MagnusEriksson提供的链接是您编写代码所需的全部,其中有许多示例和解释它是如何工作的……谢谢,@MagnusEriksson!:-)