迅睿CMS框架是一款PHP8高性能·简单易用的CMS开源开发框架,基于MIT开源许可协议发布,免费且不限制商业使用,是免费开源的产品,以万端互联为设计理念,支持的微信公众号、小程序、APP客户端、移动端网站、PC网站等多终端式管理系统。
联系官方销售客服
1835022288
028-61286886
火车头采集的时候出现发布失败,我是按照火车头发布规范写的模块,已经可以获取到栏目,但是发布失败,测试的时候提示这个
<?php $this->_module_init('news'); // news 是模块目录 if ($_GET['action'] == 'category') { $this->module['category'] = \Phpcmf\Service::L('category', 'module')->get_category($this->module['share'] ? 'share' : $this->module['dirname']); if (!$this->module['category']) { echo '模块【'.$this->module['dirname'].'】没有创建栏目'; } foreach ($this->module['category'] as $t) { if ($t['child'] == 0 && $t['tid'] == 1) { echo '<h1>'.$t['name'].'<=>'.$t['id'].'</h1>'.PHP_EOL; } } } else { // 入库数据 $data = $_REQUEST; // 发布者id 1 $data['uid'] = 1; // 发布者笔名 admin $data['author'] = 'admin'; // 主表字段 $fields[1] = $this->get_cache('table-'.SITE_ID, $this->content_model->dbprefix(SITE_ID.'_'.MOD_DIR)); $cache = $this->get_cache('table-'.SITE_ID, $this->content_model->dbprefix(SITE_ID.'_'.MOD_DIR.'_category_data')); $cache && $fields[1] = array_merge($fields[1], $cache); // 附表字段 $fields[0] = $this->get_cache('table-'.SITE_ID, $this->content_model->dbprefix(SITE_ID.'_'.MOD_DIR.'_data_0')); // 去重复 $fields[0] = array_unique($fields[0]); $fields[1] = array_unique($fields[1]); // 格式化入库字段 // 一般是格式化非文本类的字段(例如多文件上传、复选框、联动字段等等) // 这里需要按采集资料的格式入库格式化字段, // 开始归类存储 $save = []; // 主表附表归类 foreach ($fields as $ismain => $field) { foreach ($field as $name) { isset($data[$name]) && $save[$ismain][$name] = $data[$name]; } } if (!$data['catid']) { exit('栏目为空'); } $save[1]['uid'] = $save[0]['uid'] = $data['uid']; $save[1]['catid'] = $save[0]['catid'] = $data['catid']; $save[1]['url'] = ''; // 地址留空,系统会自动生成 $save[1]['status'] = 9; //9表示正常发布,1表示审核里面 $save[1]['hits'] = 0; // 阅读数 $save[1]['displayorder'] = 0; // 排序权重值,默认填写0 $save[1]['link_id'] = 0; // 填写0不管他 $save[1]['inputtime'] = SYS_TIME; // 发布时间设置成为当前时间 $save[1]['updatetime'] = SYS_TIME; // 更新时间也设置成为当前时间,关于时间采集如果是这种格式2022-12-12xx,那么需要使用strtotime函数转换成时间戳入库 $save[1]['inputip'] = '127.0.0.1'; // 发布者ip地址 //$save[1]['keywords'] = dr_get_keywords( $save[1]['title']); // 按插件提取关键词 //$save[1]['description'] = dr_get_description( $save[0]['content'], 100); // 在内容里面提取100个子作为描述 // 验证标题重复 if ($this->content_model->table(SITE_ID.'_'.MOD_DIR)->where('title', $save[1]['title'])->counts()) { echo '重复';exit; } $rt = $this->content_model->save_content(0, $save); if ($rt['code']) { /* // 用于发布成功后生成静态文件代码 //dr_html_auth($_SERVER['SERVER_ADDR']); //dr_catcher_data(SITE_URL.'index.php?s='.MOD_DIR.'&c=html&m=showfile&id='.$rt['id']); $atcode = 'chtml_'.SITE_ID.'_'.MOD_DIR.'_'.$rt['code']; \Phpcmf\Service::L('cache')->set_auth_data($atcode, $rt['code'], SITE_ID); dr_catcher_data(SITE_URL.'index.php?s='.MOD_DIR.'&c=html&m=showfile&id='.$rt['code'].'&atcode='.$atcode); $save[1]['id'] = $save[0]['id'] = $rt['code']; \Phpcmf\Service::L('router')->show_url(\Phpcmf\Service::C()->module, $save[1]); */ exit('成功'); } else { exit('失败'); } } exit;
$this->_module_init('news'); // news 是模块目录
建议在方法开头加个编码,这样你返回的报错信息就应该是中文而不是乱码了,看报错改代码
header("Content-type:text/html;charset=utf-8");
这里有一个发布失败信息,你没有截图完整,主要看这个代码下方的提示,提示为什么会失败
,大佬帮我看看谢谢
建议在方法开头加个编码,这样你返回的报错信息就应该是中文而不是乱码了,看报错改代码