火车头采集ecshop 文章接口文件
<?php
header("Content-Type:text/html;charset=utf-8"); $host = $_SERVER['HTTP_HOST'];
//if ($host!="localhost" && $host!="25-99.com" && $host!="www.25-99.com") die("域名未授权"); define('IN_ECS', true); require(dirname(__FILE__) . '/includes/init.php'); $basepath = ROOT_PATH; $act = $_GET["action"];
if ($act=="post"){
//发布文章
extract ( $_POST, EXTR_OVERWRITE ); // 格式化post参数
if (!$cat_id){
if (stripos($catname,":")<1){ exit( "分类不正确" );}
}
if (! $title) { exit ( "标题不能为空" ); }
if (! $content) { exit ( "内容不能为空" ); } /* 字段列表 */
$field_list = array("title","content","author","author_email", "is_open", "keywords","cat_id","description"); $field_arr = array(
'add_time' => gmtime(),
); $field_arr['title'] = $title;
$field_arr['content'] = GetCurContent($content);
$field_arr['author'] = $author;
$field_arr['author_email'] = $author_email;
$field_arr['keywords'] = $keywords;
$field_arr['description'] = $description;
$field_arr['cat_id'] = $cat_id;
$field_arr['is_open'] = 1;
$field_arr['article_type'] = "0";
//如果上传了分类,则使用该分类
if (!empty($catname)){
$pid = "0";
$cid = "0";
$cats = explode(":",$catname);
foreach ($cats AS $cat){
if (!empty($cat) && $cat!=""){
$sql = "SELECT cat_id FROM " . $ecs->table('article_cat')." where cat_name='$cat' and parent_id=$pid";
$res=$db->query($sql);
$row = $db->fetchRow($res);
if (!empty($row))
{
$cid = $row["cat_id"];
$pid = $cid;
}
else
{
$sql = "INSERT INTO " . $ecs->table('article_cat') . " (cat_name,parent_id) VALUES ('" . addslashes($cat) . "','".$pid."')";
$db->query($sql);
$cid = $db->insert_id();
$pid = $cid;
}
}
}
$field_arr['cat_id'] = $cid;
} /* 给文章最后增加三个带有超链接的关键词 */
//取出关键字表的数据
$sql="select * from ". $GLOBALS['ecs']->table('content_key') ;
$res_k=$GLOBALS['db']->getAll($sql);
//从关键字中随机取出三个数组
$random_keys=array_rand($res_k,3);
$field_arr['content'] = $field_arr['content'].'<br/><br/>华企商城更多商品介绍:<a href="' .$res_k[$random_keys[0]]['key_url']. '">' .$res_k[$random_keys[0]]['key_name']. '</a> <a href="' .$res_k[$random_keys[1]]['key_url']. '">' .$res_k[$random_keys[1]]['key_name']. '</a> <a href="' .$res_k[$random_keys[2]]['key_url']. '">' .$res_k[$random_keys[2]]['key_name']. '</a>'; $db->autoExecute($ecs->table('article'), $field_arr, 'INSERT');
$gid = $db->insert_id(); echo("文章发布成功");
}else{
//获取分类
$sql = "select cat_id,parent_id,cat_name from ".$ecs->table('article_cat');
$rs = $db->query($sql);
if(!$rs){die("valid result!");}
echo("<select>");
while($row = $db->fetchRow($rs)){
if($row["parent_id"]==0){
echo "<option value='".$row["cat_id"]."'>".$row["cat_name"]."</option>";
}else{
echo "<option value='".$row["cat_id"]."'>----".$row["cat_name"]."</option>";
}
}
echo("</select>");
} /**
* 得到远程图片
*
* @access public
* @param goods_desc $goods_desc 要处理的内容
* @return mix 如果成功返回缩略图的路径,失败则返回false
*/
function GetCurContent($goods_desc)
{
$body = stripslashes($goods_desc);
$img_array = array();
//$body = ereg_replace("HTTP://".$_SERVER['SERVER_NAME']."/","",$body);//将源文件进行替换
preg_match_all("/src=[\"|'|\s]{0,}(http:\/\/([^>]*)\.(gif|jpg|png))/isU",$body,$img_array);
$img_array = array_unique($img_array[1]); set_time_limit(0);
$imgurl = "bdimages/upload1/".date('Ymd');
$imgpath = ROOT_PATH.$imgurl; $millisecond = date("YmdHms");
if (!file_exists($imgpath))
{
if (!make_dir($imgpath))
{
return false;
}
}
else
{ foreach($img_array as $key =>$value)
{
$value = trim($value);
$get_file = @file_get_contents($value);
$rndfilename = $imgpath."/".$millisecond.$key.".".substr($value,-3,3);
$fileurl = "http://".$_SERVER['SERVER_NAME']."/".$imgurl."/".$millisecond.$key.".".substr($value,-3,3);
// $fileurl = "/".$imgurl."/".$millisecond.$key.".".substr($value,-3,3);
if($get_file)
{
$fp = @fopen($rndfilename,"w");
@fwrite($fp,$get_file);
@fclose($fp);
}
//echo $rndfilename."<br/>".$fileurl."<br/>";
$body = str_replace($value,$fileurl,$body);;
echo $body;
}
}
$body = addslashes($body);
return $body;
} ?>
火车头采集ecshop 文章接口文件的更多相关文章
- ecshop init.php文件分析(转)
<?php /** * ECSHOP 前台公用文件 */ //防止非法调用 defined-判断常量是否已定义,如果没返回false if (!defined('IN_ECS')) { die( ...
- 火车头采集器对接织梦cms图集发布时, 采集网上图片超时的解决方法
背景介绍: 火车头采集器对接织梦cms图片集发布时, 对于多张(超过30张)大图片时, 经常会出现图集发布超时的情况. 问题分析: 因为php对于资源的处理有默认的超时时间30秒, 而我尝试了好多方 ...
- ECShop 文章添加缩略图功能
为 ECShop 文章添加缩略图 ECShop 文章不包含缩略图比较遗憾,不过它的文章里包含一个附件上传,而且一般不会用到,这样,我们就可以改动一下,让它成为缩略图. 首先在 includes ...
- 前端工程化:使用 shelljs 生成 yapi 接口文件
之前的文章介绍了使用 yapi-to-typescript (下文简称 ytt)生成接口类型定义文件,方便我们直接使用接口的请求和响应类型,能减少很多写接口类型的时间. 使用 yapi-to-type ...
- zw版_Halcon图像库delphi接口文件
zw版_Halcon图像库delphi接口文件 Halcon图像库delphi接口文件,根据安装时用户设置的文件目录不同,会有所差异,笔者一般安装在delphi的import目录下. 参见:& ...
- ecshop init.php文件分析
1. ecshop init.php文件分析 2. <?php 3. 4. /** 5. * ECSHOP 前台公用文件 6. * ===================== ...
- 软件測试系统文章(文件夹&链接在此)
前言 我会在此账号上写一系列关于软件測试的文章,故在此置顶软件測试系列文章的文件夹和链接,以方便大家阅读! 文件夹 软件測试系列之入门篇(一) 软件測试系列之了解篇(二) 软件測试系列之黑白盒(三) ...
- 用Node.JS+MongoDB搭建个人博客(app.js接口文件)(二)
app.js的GitHub地址:用力戳我然后点个star 说个题外话,THINKPHP是通过一个index.php来引入文件,所以被称为接口文件. 而NodeJS也有这样的接口文件,通常也会放在根目录 ...
- “必须执行Init_Clk函数,才能采集到二氧化碳接口485数据的问题”的解决
这个问题困扰了我很长一段时间,而且如果这个问题不解决,就有一个无法调和的矛盾:执行Init_Clk函数,能采集到二氧化碳接口485数据,但是功耗大:不执行Init_Clk函数,不能采集到二氧化碳接口4 ...
随机推荐
- Linux常用命令大全
系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIO ...
- 使用IdleTest进行TDD单元测试驱动开发演练(3) 之 ASP.NET MVC
一.[前言] (1)本文将用到IOC框架Unity,可参照<Unity V3 初步使用 —— 为我的.NET项目从简单三层架构转到IOC做准备>(2)本文的解决方案是基于前述<使用I ...
- 01背包问题python 2.7实现
版权声明:本文为博主原创文章,转载请注明转自 http://www.cnblogs.com/kdxb/p/6140625.html #!/usr/bin/env python # -*- coding ...
- PHPmailer关于Extension missing: openssl报错的解决
最近在写一个网页的时候,需要用到PHPmailer来发送邮件,按照官网上给出的demo写出一个例子,却报错Extension missing: openssl 最后发现需要修改php.ini中的配置: ...
- response和request的区别以及常见问题解决
request是请求,即客服端发来的请求 response是响应,是服务器做出的响应 --------------------------------------------------------- ...
- 获取当前应用的系统路径工具类和java的System.getProperty()方法介绍
java的System.getProperty()方法可以获取的值,如下: 对于Java程序,无论是未打包的还是打包的JAR或WAR文件,有时候都需要获取它运行所在目录信息,如何做到这一点呢? /** ...
- Entity Framework之IQueryable和list本地集合
我们来说一下Iqueryable集合和List等本地集合的区别,下面我们通过建立一个简单的例子来学习这个知识点,直接进入主题吧 1.首先对比一下两段代码?看一下有什么结果: (1) 第一段代码如图所示 ...
- 【译】Spring 4 基于TaskScheduler实现定时任务(注解)
前言 译文链接:http://websystique.com/spring/spring-job-scheduling-with-scheduled-enablescheduling-annotati ...
- [Erlang 0126] 我们读过的Erlang论文
我在Erlang Resources 豆瓣小站上发起了一个征集活动 [链接] ,"[征集] 我们读过的Erlang论文",希望大家来参加.发起这样一个活动的目的是因为Erlang相 ...
- 0035 Java学习笔记-注解
什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...