我需要创建一个文件,其中包含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;
}
之后的字符串。??
答案 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);
}