Php返回字符串段

时间:2015-08-04 17:07:43

标签: php

我需要创建一个文件,其中包含Lancha之后的所有聊天消息,这些消息将通过php输出显示。下面的示例是终端或CMD输出,但真实的输出要广泛得多。

在这个例子中,我需要返回[text] =>

Lancha

在整个file.txt中,[messages] => Array ( [0] => stdClass Object ( [chat_message] => stdClass Object ( [body] => stdClass Object ( [type] => text [text] => Lancha ) 重复多次。但[messages] => Array可能存在也可能不存在。

到现在为止我有这个:

[text] =>

我怎么能只返回$mystring = "file.txt"; $findme = "[text] =>"; $pos = strpos($mystring, $findme); if ($pos === false) { echo "No conversations"; } else { return $conv; } 之后的字符串。??

1 个答案:

答案 0 :(得分:1)

鉴于您显示的文本文件的内容似乎是序列化的PHP数据结构,您可以使用以下内容获取数据:

$mystring = "file.txt";
$conversations = unserialize( file_get_contents($mystring) );
if ( count($conversations["messages"]) <= 0 ) {
    echo "No Conversations";
} else {
    /* access the desired member in the object here */
}

该文件的完整内容现在位于可通过普通PHP方法访问的对象数组中。

例如,您可以查看消息数组并使用箭头操作符获取文本,因为数据现在是一个对象:

$conversations->messages[$i]->chat_message->body->text;

<击> 修改

以前,你的问题说你有一个包含数据结构的文件,而相反的情况显然是正确的。要遍历数据结构并将[text]的属性输出到文件,这应该可以满足您的需求

$myfile = "file.txt";
for($i = 0; $i < count($messages); $i++) {
    file_put_contents($myfile, $messages[$i]->chat_message->body->text + "\n", FILE_APPEND);
}