zblog
當前位置:首頁 > 商學院 > zblog > 正文内容

zblog

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

豫唐網絡2023-11-04 12:014705

接口名稱:Filter_Plugin_PostArticle_Core

接口描述:接管本插件(jiàn)接口,将提交文章數據時,在過濾數據内容及保存數據前運行插件(jiàn)自(zì)定義代碼,即可通(tōng)過該接口更改保存的文章内容。

應用場景:過濾文章内容,替換指定數據内容等,如将文章中的遠(yuǎn)程文件(jiàn)鏈接自(zì)動換為(wèi)本地URL、添加文章時添加附件(jiàn)信息(如發送郵箱)等。

調用方法:

Add_Filter_Plugin('Filter_Plugin_PostArticle_Core','yt_demo');

調用參數:

參數類型:post

參數:$article

描述:當前提交的文章數據實例

返回參數:

調用示例:

#注冊插件(jiàn)
RegisterPlugin("RemoteImage","ActivePlugin_RemoteImage");
 
#激活插件(jiàn)時挂接
Filter_Plugin_PostArticle_Core接口
function ActivePlugin_RemoteImage() {
	Add_Filter_Plugin('Filter_Plugin_PostArticle_Core','RemoteImage_Main');
}
 
#以引用方式接管$article實例
function RemoteImage_Main(&$article) {
	global $zbp;
	$content = $article->Content;
	$pattern = "/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.png]))[\'|\"].*?[\/]?>/"; //匹配圖片文件(jiàn)的正則
	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); //保存遠(yuǎn)程圖片到(dào)本地服務器(qì),得到(dào)返回的本地圖片地址
				$picUrl=str_replace($zbp->path,$zbp->host,$pic); //把圖片地址替換成本地
				$article->Content=str_replace($rurl,$picUrl,$article->Content); //替換文章内容中的圖片地址
			}
		}
	}
 
}
#保存遠(yuǎn)程圖片到(dào)本地服務器(qì),返回保存在本地的圖片地址
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; 
}


示例說明:

代碼來自(zì)插件(jiàn)保存遠(yuǎn)程圖片,實現的步驟簡單描述如下(xià):

找出文章中的遠(yuǎn)程圖片

将遠(yuǎn)程圖片保存到(dào)本地服務器(qì)中

替換文章中的圖片地址為(wèi)本地地址

掃描二維碼推送至手機(jī)訪問。

版權聲明:本文由湯陰縣飄瑾網絡科技(jì)工(gōng)作室發布,如需轉載請注明出處。

本文鏈接:

分享給朋友(yǒu):
返回列表

上(shàng)一(yī)篇:标簽雲集自(zì)建模闆教程

下(xià)一(yī)篇:文章列表api常用調用

相(xiàng)關文章

php curl通(tōng)過代理獲取數據

php curl通(tōng)過代理獲取數據

php curl通(tōng)過代理獲取數據$curl=curl_init(); curl_setopt($curl, CURLOPT_URL, "http://www.baidu...

zblogphp文章頁面編輯頁結束接口說明

zblogphp文章頁面編輯頁結束接口說明

接口名稱:Filter_Plugin_Edit_End接口描述:文章編輯頁加載前處理内容。應用場景:可直接跳轉到(dào)其他頁面,處理自(zì)身業(yè)務流程。調用方法:Add_Filter_Plugin('Fi...

zblogphp文章頁面編輯2号輸出接口說明

zblogphp文章頁面編輯2号輸出接口說明

接口名稱:Filter_Plugin_Edit_Response2接口描述:文章編輯頁面1号輸出接口,具體位置位于摘要内容設置下(xià)。應用場景:可在文章(頁面)編輯頁增加自(zì)定義參數,如自(zì)定義表單字段等。調...

zblogphp程序報(bào)錯(cuò)後如何獲得幫助

zblogphp程序報(bào)錯(cuò)後如何獲得幫助

zblogphp程序報(bào)錯(cuò)後獲取幫助分為(wèi)免費(fèi)和付費(fèi)兩種。免費(fèi)幫助方法1開(kāi)啓調試模式(點擊打開(kāi)新鏈接),将截圖發到(dào)群内。方法2提交工(gōng)單或私信把網站(zhàn)信息發群主,等湊夠一(yī)定數量後,群主開(kāi)直播查錯(cuò)。付費(fèi)幫助找群...

zba文件(jiàn)怎麽使用?zba文件(jiàn)是什麽?

zba文件(jiàn)怎麽使用?zba文件(jiàn)是什麽?

        .zba是zblogphp的專用應用格式。應用格式又(yòu)分主題和插件(jiàn)兩種。   ...

zblog授權中心zblog商業(yè)授權價格

zblog授權中心zblog商業(yè)授權價格

        zblog的商用鏈接,已與2022年(nián)01月(yuè)28從(cóng)官網移除,git開(kāi)源協議MIT。如你依然不放(fàng)心,可以找豫...