Z-Blog主页
Z-Wiki
应用中心
菠萝阁
ZBlogger
Z5加密
跳至内容
Z-Blog Wiki
Z-Blog官方文库
用户工具
登录
站点工具
搜索
工具
显示页面
修订记录
最近更改
媒体管理器
网站地图
登录
>
最近更改
媒体管理器
网站地图
您在这里:
Z-Blog & Z-BlogPHP
»
Z-BlogPHP
»
应用开发指南
»
Z-BlogPHP插件开发
»
Z-BlogPHP 系统接口列表
»
filter_plugin_postarticle_core
zblogphp:development:plugin:interfaces:filter_plugin_postarticle_core
本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。
====== Filter_Plugin_PostArticle_Core ====== ===== 接口描述 ===== 接管本插件接口,将提交文章数据时,在过滤数据内容及保存数据前运行插件自定义代码,即可通过该接口更改保存的文章内容。 ===== 应用场景 ===== 过滤文章内容,替换指定数据内容等,如将文章中的远程文件链接自动换为本地URL等。 ===== 使用说明 ===== ==== 调用方法 ==== <code php> Add_Filter_Plugin('Filter_Plugin_PostArticle_Core','demo'); function demo(&$article){ echo 'demo'; } </code> ==== 调用参数 ==== ^参数类型 ^参数 ^描述 ^ |[[zblogphp:pluginsinterface:post]] |$article |当前提交的文章数据实例 | ==== 返回参数 ==== 无 ===== 代码示例 ===== 以下代码来自插件[[http://app.zblogcn.com/?id=390|保存远程图片]],实现的步骤简单描述如下: - 找出文章中的远程图片 - 将远程图片保存到本地服务器中 - 替换文章中的图片地址为本地地址 <code php 1> #注册插件 RegisterPlugin("RemoteImage","ActivePlugin_RemoteImage"); #激活插件时挂接Filter_Plugin_PostArticle_Core接口 function ActivePlugin_RemoteImage() { Add_Filter_Plugin('Filter_Plugin_PostArticle_Core','RemoteImage_Main'); } #以引用方式接管$article实例 function RemoteImage_Main(&$article) { global $zbp; set_time_limit(0); ZBlogException::ClearErrorHook(); $content = $article->Content; $pattern = "/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.png]))[\'|\"].*?[\/]?>/"; //匹配图片文件的正则 preg_match_all($pattern,$content,$matchContent); $picArray = $matchContent[1]; //存储匹配的图片链接 if ($picArray){ foreach($picArray as $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); //替换文章内容中的图片地址 } } } } #保存远程图片到本地服务器,返回保存在本地的图片地址 function RemoteImage_Save($url,$filename="",$name) { global $zbp; if($url=="") return false; if($filename=="") { $ext=strrchr($url,"."); if($ext!=".gif" && $ext!=".jpg" && $ext!=".png") return false; $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 = new Upload; $upload->Name = $name; $upload->SourceName = $name; $upload->MimeType = ""; $upload->Size = $size; $upload->AuthorID = $zbp->user->ID; $upload->Save(); return true; } </code>
zblogphp/development/plugin/interfaces/filter_plugin_postarticle_core.1466423782.txt
· 最后更改: 2016/06/20 19:56 由
127.0.0.1
页面工具
显示页面
修订记录
页面重命名
回到顶部