zblog
当前位置:首页 > 商学院 > zblog > 正文内容

zblog

zblogphp文章提交的核心接口说明

豫唐网络2023-11-04 12:015629

接口名称:Filter_Plugin_PostArticle_Core

接口描述:接管本插件接口,将提交文章数据时,在过滤数据内容及保存数据前运行插件自定义代码,即可通过该接口更改保存的文章内容。

应用场景:过滤文章内容,替换指定数据内容等,如将文章中的远程文件链接自动换为本地URL、添加文章时添加附件信息(如发送邮箱)等。

调用方法:

Add_Filter_Plugin('Filter_Plugin_PostArticle_Core','yt_demo');

调用参数:

参数类型:post

参数:$article

描述:当前提交的文章数据实例

返回参数:

调用示例:

#注册插件
RegisterPlugin("RemoteImage","ActivePlugin_RemoteImage");

#激活插件时挂接
Filter_Plugin_PostArticle_Core接口
functionActivePlugin_RemoteImage(){
	Add_Filter_Plugin('Filter_Plugin_PostArticle_Core','RemoteImage_Main');
}

#以引用方式接管$article实例
functionRemoteImage_Main(&$article){
	global$zbp;
	$content=$article->Content;
	$pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.png]))[\'|\"].*?[\/]?>/";//匹配图片文件的正则
	preg_match_all($pattern,$content,$matchContent);
	$picArray=$matchContent[1];//存储匹配的图片链接
	if($picArray){		
		foreach($picArrayas$key=>$rurl){			
			if(substr($rurl,0,strlen($zbp->host))!=$zbp->host){
				$path=$zbp->usersdir.'upload/'.date('Y').'/'.date('m');			
				if(!file_exists($path))mkdir($path,0755,true);
				$picname=date('YmdHis').'_'.rand(10000,99999).'.'.pathinfo($rurl,PATHINFO_EXTENSION);
				$pic=$path.'/'.$picname;
				$getpic=RemoteImage_Save($rurl,$pic,$picname);//保存远程图片到本地服务器,得到返回的本地图片地址
				$picUrl=str_replace($zbp->path,$zbp->host,$pic);//把图片地址替换成本地
				$article->Content=str_replace($rurl,$picUrl,$article->Content);//替换文章内容中的图片地址
			}
		}
	}

}
#保存远程图片到本地服务器,返回保存在本地的图片地址
functionRemoteImage_Save($url,$filename="",$name){
	global$zbp;
	if($url=="")returnfalse;
	if($filename==""){
		$ext=strrchr($url,".");
		if($ext!=".gif"&&$ext!=".jpg"&&$ext!=".png")returnfalse;
		$filename=date("YmdHis").$ext;
	}
	ob_start();
	readfile($url);
	$img=ob_get_contents();
	ob_end_clean();
	$size=strlen($img);

	$fp2=@fopen($filename,"a");
	fwrite($fp2,$img);
	fclose($fp2);

	$upload=newUpload;
	$upload->Name=$name;
	$upload->SourceName=$name;
	$upload->MimeType="";
	$upload->Size=$size;
	$upload->AuthorID=$zbp->user->ID;
	$upload->Save();
	returntrue;
}


示例说明:

代码来自插件保存远程图片,实现的步骤简单描述如下:

找出文章中的远程图片

将远程图片保存到本地服务器中

替换文章中的图片地址为本地地址

扫描二维码推送至手机访问。

版权声明:本文由汤阴县豫唐网络科技有限公司发布,如需转载请注明出处。

本文链接:https://www.ytecn.com/post/67.html

分享给朋友:

相关文章

zblogphp文章页面编辑页结束接口说明

zblogphp文章页面编辑页结束接口说明

接口名称:Filter_Plugin_Edit_End接口描述:文章编辑页加载前处理内容。应用场景:可直接跳转到其他页面,处理自身业务流程。调用方法:Add_Filter_Plugin('Fi...

zblogphp打开调试模式的方法zblogphp程序报错怎么办

zblogphp打开调试模式的方法zblogphp程序报错怎么办

因为出问题了,所以要开调试定位和解决,而不是因为开了调试,所以出问题了。未开调试模式的报错界面但只发这种图片,是寻求不到帮助的,除非发图的时候主题或者插件的作者正好看到了。所以,我们需要开启调试模...

zblog商业授权

zblog商业授权

zblog的商用链接,已与2022年01月28从官网移除,git开源协议MIT。如你依然不放心,可以找豫唐购买授权服务。豫唐是zblog的指定授权商之一。Z-Blog 授权价格及服务支持版本授权许可:...

zblogphp开源免费、小巧强大的博客程序与CMS建站系统

zblogphp开源免费、小巧强大的博客程序与CMS建站系统

Z-BlogPHP 基于 PHP 平台,支持 MySQL(含 MariaDB)、SQLite 和 PostgreSQL 数据库。期待它能成为您建站、写博的上佳选择。我们一直在努力把 Z-BlogPHP...

zblog插件怎么安装

zblog插件怎么安装

zblog的插件分为应用中心插件和自定义插件两大类。应用中心插件又分为免费插件和付费插件。自定义插件分为定制插件和自写自用插件。zblog插件的安装分3种方式:一、应用中心安装1、登录自己的网站后台主...

zblog主题模板制作基础篇需要掌握什么知识

zblog主题模板制作基础篇需要掌握什么知识

所需知识如下:1、学会创建主题;2、了解主题文件下各文件的作用;3、了解主题模板的主要组成页面;4、学会调用主题的css、js等文件;5、学会调用公共文件;6、学会调用简单的标签;7、学习简单的模板语...