Home  >  Article  >  Backend Development  >  php smarty Chinese interception plug-in development example_PHP tutorial

php smarty Chinese interception plug-in development example_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:31:12868browse

Smarty is undoubtedly the most popular and famous template engine in PHP development. By using this template engine, it brings great convenience to our development work. Let’s share the smarty plug-in technology (taking creating a php smarty Chinese string interception as an example), making full use of the various features of smarty, making php smarty a sharper tool in our hands, making our work faster and more efficient.

(1) First we need to know some knowledge about smarty and its plug-ins

1. What is smarty?

Smarty is a template PHP template engine written in PHP. It is a template system recommended by php.net.

2. What is smarty plug-in?

Smarty plug-ins refer to the plugins in smarty, which are some functional control statements embedded in the template. The Variable Modifiers (variable adjustment) in smarty are actually some built-in plug-ins.

3. How does the plug-in work?

In the smarty template, the plug-in is loaded dynamically when using the calling statement. You can put the plug-ins you have written into the plugins directory under the lib directory in the smarty directory, so that when these plug-ins are used in the template, they will be loaded dynamically. will be loaded automatically.

4. How many types of plug-ins are there?

The types of smarty plug-ins are: function, modifier, block, compiler, prefilter, postfilter, outputfilter, resource, insert. In this article we only share how to develop function type plug-ins. The development methods of other types are similar. You can Try to imitate.

5. How to name the plug-in?

File name format:

type.name.php

Type refers to the type, and the ones mentioned above are its selection range;

name: Customized plug-in name, showNews is used in this article to name it;

Function name:

smarty_type_name() smarty: fixed name at a fixed position; type is consistent with the type of the file name, name is consistent with the name in the file name

(2)Now that the basic knowledge is understood, let’s start development. Copy the following code into a file, name it modifier.truncate_cn.php file, and then copy the file to the smarty/lib/plugins/ directory (note that the directory format is not fixed, individuals can choose it according to their own circumstances, but it must be placed in the plugins directory).

/*
*作者:http://www.phpernote.com/
*时间:2013年1月31日06:31:52
*作用:截取中文字符串
*/
function smarty_modifier_truncate_cn($string,$length=0,$ellipsis='…',$start=0){
	$string=strip_tags($string);
	$string=preg_replace('/\n/is','',$string);
	//$string=preg_replace('/ | /is','',$string);//清除字符串中的空格
	$string=preg_replace('/ /is','',$string);
	preg_match_all("/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/",$string,$string);
	if(is_array($string)&&!empty($string[0])){
		$string=implode('',$string[0]);
		if(strlen($string)<$start+1){
			return '';
		}
		preg_match_all("/./su",$string,$ar);
		$string2='';
		$tstr='';
		//www.phpernote.com
		for($i=0;isset($ar[0][$i]);$i++){
			if(strlen($tstr)<$start){
				$tstr.=$ar[0][$i];
			}else{
				if(strlen($string2)<$length+strlen($ar[0][$i])){
					$string2.=$ar[0][$i];
				}else{
					break;
				}
			}
		}
		return $string==$string2?$string2:$string2.$ellipsis;
	}else{
		$string='';
	}
	return $string;
}

(3)You can use this plug-in below. In the future, you can directly use the truncate_cn function in the template to intercept Chinese strings, such as: {$news.content|truncate_cn:' 30'}

At this point, a plug-in for the php smarty template is completed. Isn’t it very simple? I hope you can learn and build your own smarty into a more personalized template engine.

Articles you may be interested in

  • Using php functions in smarty templates and how to use multiple functions for one variable in smarty templates
  • For loop in smarty templates Extension plug-in
  • How to clear html format and remove spaces in text and then intercept the text
  • PHP method to get file extension (suffix name)
  • Smarty temporary file creation Solution to failure
  • Use PHP function memory_get_usage to obtain the current PHP memory consumption to optimize program performance
  • jquery pop-up window plug-in (compatible with all browsers) share
  • linux Detailed explanation of chmod (file or folder permission setting) command parameters and usage

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/764122.htmlTechArticlesmarty is undoubtedly the most popular and famous template engine in PHP development. By using this template engine, it gives us It brings great convenience to the development work. Share below...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn