模块:新闻 News 

模块表单:Test


入库脚本接口 

新建:/api/caiji_test.php (应用于URL地址请求,大小写随意)

如果根目录没有api文件夹,就创建到 /public/api/caiji_test.php (应用于URL地址请求,大小写随意)

<?php

/**
 * 数据采集
 */

define('IS_API', basename(__FILE__, '.php')); // 项目标识
define('SELF', pathinfo(__FILE__, PATHINFO_BASENAME)); // 该文件的名称
require('../index.php'); // 引入主文件

新建:./dayrui/My/Api/Caiji_test.php(首字母必须大写,最终php文件命名与上面的名称保持相同)

$tid = 'test';
$mid = 'news';
$this->_module_init($mid); // news 是模块目录

$form = $this->module['form'][$tid];
if (!$form) {
    exit('模块表单【'.$tid.'】不存在');
}
// 入库数据

$data = $_REQUEST;

if (!$data['cid']) {
    exit('主内容cid参数不能为空');
}

$index = $this->content_model->get_row($data['cid']);
if (!$data['cid']) {
    exit('主内容cid参数不能为空');
}

// 发布者id 1
$data['uid'] = 1;
// 发布者笔名 admin
$data['author'] = 'admin';

// 主表字段
$main = $this->content_model->dbprefix(SITE_ID . '_' . MOD_DIR.'_form_'.$tid);
$fields[1] = $this->get_cache('table-' . SITE_ID, $main);

// 附表字段
$fields[0] = $this->get_cache('table-' . SITE_ID, $main. '_data_0');


// 开始归类存储

$save = [];

// 主表附表归类
foreach ($fields as $ismain => $field) {
    foreach ($field as $name) {
        isset($data[$name]) && $save[$ismain][$name] = $data[$name];
    }
}

$save[1]['uid'] = $save[0]['uid'] = $data['uid'];
$save[1]['cid'] = $save[0]['cid'] = $data['cid'];

$save[1]['status'] = 1; // 审核通过
$save[1]['inputtime'] = SYS_TIME; // 发布时间设置成为当前时间
$save[1]['inputip'] = '127.0.0.1'; // 发布者ip地址


$rt = \Phpcmf\Service::M('mform', 'mform')->save_content($mid, $tid, $index, $save[1], $save[0]);

if ($rt['code']) {

    exit('成功');
} else {
    exit('失败');
}

exit;


注意:本脚本的程序代码只对内容等字段入库有效,由于采集目标网站的数据规范性无法做到统一;

如果开发者对其他字段(例如多文件上传、复选框、联动字段等等)需要开发者自己根据采集的实际情况来编写入库程序来组装入库的POST数据,需要PHP开发技术基础,下面来举一些基础例子。

1、多文件上传字段

$data['字段名称'] = dr_array2string([
    ['file'=>'文件路径', 'title'=>'标题'],   
]);

2、复选框字段

$data['字段名称'] = dr_array2string([
    '值1', '值2'  
]);



文档最后更新时间:2025-04-08 18:12:56
我来修改此文档(1) 不会操作怎么办?