朕在给 ThinkSNS 写 API 时遇到了史前大难题!

2015-06-18 18:30:05 +08:00
 incrediblink

不知道在V2EX问这种事情会不会太low了

是这样的,朕最近为了给自己的ThinkSNS小站写一个桌面客户端。是用ThinkPHP(妈呀不行气质更low了!QAQ)框架弄的,登录验证、获取微博信息这些都实现了,正在朕心中翻涌起滚滚巨浪心想着能一统江山的时候,出现了谜之难题。

朕的发布文字微博的函数是这样写的

function textTweet($uid, $content){
$Feed = M('feed');
$Feed->uid = $uid;
$Feed->publish_time = time();
$Feed->type = 'post';
$feed_id = $Feed->add();
$FeedData = M('feed_data');
$FeedData->feed_id = $feed_id;
$FeedData->feed_data = "a:16:{s:7:\"content\";s:24:\"".$content."\";s:4:\"body\";s:24:\"".$content."\";s:10:\"source_url\";s:0:\"\";s:9:\"attach_id\";s:0:\"\";s:3:\"uid\";i:283;s:3:\"app\";s:6:\"public\";s:4:\"type\";s:4:\"post\";s:10:\"app_row_id\";i:0;s:13:\"app_row_table\";s:4:\"feed\";s:12:\"publish_time\";i:".time().";s:4:\"from\";s:1:\"0\";s:12:\"repost_count\";i:0;s:13:\"comment_count\";i:0;s:6:\"is_del\";i:0;s:9:\"is_repost\";i:0;s:8:\"is_audit\";i:1;}";
$FeedData->client_ip = get_client_ip();
$FeedData->feed_content = $content;
$FeedData->add();
return $feed_id;
}

求别吐槽文风…然后那个谜一样的feed_data大概就是万恶之源

POST以后确确实实输出了Feed_id(是的你没看错那个key就是密钥)

然而在Timeline里面显示出来是空空的

数据库里面的feeddata明明活蹦乱跳的啊!QAQ

嗯,问了一只触触,他说TS是读缓存的,然而朕清了服务器缓存后还是一片空白。所以朕就找到大家了…希望大家不要嫌弃朕……

3257 次点击
所在节点    问与答
23 条回复
giuem
2015-06-18 18:32:23 +08:00
自称 朕,真是恶心
blacktulip
2015-06-18 18:33:17 +08:00
皇上自行圣裁即可,草民不敢乱言。
laoertongzhi
2015-06-18 18:36:59 +08:00
皇上自行圣裁即可,草民不敢乱言。
laoertongzhi
2015-06-18 18:37:09 +08:00
皇上自行圣裁即可,草民不敢乱言。+1
incrediblink
2015-06-18 18:45:50 +08:00
@giuem @blacktulip @laoertongzhi (´・ω・`)用“朕”自称只是一个玩笑,绝对没有其他的意思,如果冒犯了大家在此道歉, 以后会改过的。
Septembers
2015-06-18 18:49:47 +08:00
$FeedData->feed_data的字符串可以反序列化后用var_dump打印出来改成array再序列化 看起来会稍微好点
543400
2015-06-18 19:13:14 +08:00
(≧▽≦) 楼主萌萌哒
itfanr
2015-06-18 19:15:08 +08:00
@incrediblink 以后乖乖的吧
49
2015-06-18 19:37:15 +08:00
@giuem 不觉得如何,朕本来就是以前很平凡的自称,只是始皇帝把它高贵化了。
现在人人皆可成朕啊。何必心生分别。
和而不同。
LMkillme
2015-06-18 19:48:05 +08:00
@49 就跟「小姐」一样?
oott123
2015-06-18 19:54:39 +08:00
你知道 phpserialize 这个函数么……
thinkif
2015-06-18 19:54:48 +08:00
大胆,在朕面前敢自称朕,你让其他的朕们怎么看。。。
oott123
2015-06-18 19:55:56 +08:00
记忆偏差了,抱歉,这函数就叫 serialize
http://php.net/manual/zh/function.serialize.php
oott123
2015-06-18 19:58:47 +08:00
刚刚忘了说你的问题在哪了。
s:24 这个地方,24是代表字符串长度;然而你的 $content 的长度不确定,反序列化的时候就挂了……
incrediblink
2015-06-18 20:38:12 +08:00
@oott123 (❁´▽`❁)谢谢小天使!
tSQghkfhTtQt9mtd
2015-06-18 21:33:42 +08:00
我想知道你的POST测试工具是什么
oott123
2015-06-18 21:41:46 +08:00
@liwanglin12 目测 postman ,chrome app
tSQghkfhTtQt9mtd
2015-06-18 21:54:42 +08:00
@oott123 哦。。的确是,旧版的不长这样,没认出来。。
incrediblink
2015-06-19 08:00:01 +08:00
@oott123 其实昨天晚上看到你说的还是云里雾里,但是睡觉翻来覆去的时候突然想通,今天立马(写了一段很丑的代码)就实现了!小天使万岁!( ´∀`)
oott123
2015-06-19 08:53:35 +08:00
@incrediblink 你该不会吧 24 换成了 strlen 吧…

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/199640

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX