2019独角兽企业重金招聘Python工程师标准>>>
一、contentWordNumLimit($content, $maxWordNum)
1 作用描述:内容格式化(英文单双引号替换为中文,回车换行替换为html中的br标签,\n替换为空格), 限制输出内容的字数,超过的部分用省略号代替。2 参数:$content:要处理的字符串$maxWordNum:要限制的字数。正值,限制的字数不超过该值;负值,不限制字数;默认值是 -1
二、PHP函数介绍
1 nl2br(string)
(1)函数作用:在字符串中的每个新行(\n)之前插入HTML换行符(<br/>).(2)参数介绍:string:必需。规定要检查的字符串。
2 preg_replace(miexed $pattern, mixed $replacement, mixed $subject[, int $limit = -1[, int &$count]])
(1)函数作用:执行一个正则表达式的替换和搜索。搜索subject中匹配pattern的部分,以replacement进行替换。返回值:如果subject是一个数组,preg_replace()返回一个数组,其他情况下返回一个字符串。如果匹配被查找到,替换后的subject被返回;其他情况下,返回没有改变的subject。如果发生错误,返回null;如果发生错误,返回NULL。(2)参数介绍”pattern:要搜索的模式。可以是一个字符串或字符串数组。replacement:用于替换的字符串或字符串数组。如果这个参数是一个字符串,并且pattern是一个数组,那么所有的模式都使用这个字符串进行替换。如果pattern和replacement都是数组,每个pattern使用replacement中对应的元素进行替换。如果replacement中的元素比pattern中的少,多出来的pattern使用空字符串进行替换。replacement中可以包含后项引用\\n或(php 4.0.4以上可以用)$n,语法上首选后者。每个这样的引用将被匹配到第n个捕获到的文本替换。n可以是0-99,\\0和$0代表完整的模式匹配文本。捕获子组的序号计数方式为:代表捕获子组的左括号从左到右,从1开始数。。如果要在replacement中使用反斜线,必须使用4个("\\\\\",译注:因为这首选是php字符串,经过转义后,是两个,再经过正则表达式引擎后才被认为是一个原文反斜线)。当在替换模式先工作并且后项引用后面紧跟着需要时另外一个数组(比如:在一个匹配模式后紧接着增加一个原文数字),不能使用\\1这样的语法来描述后项引用。比如,\\11经会使用preg_replace()不能理解你希望的是一个\\1后项引用紧跟着一个原文1,是爱上一\\11后项引用后面不跟任何东西。这种情况下解决方案是使用\${1}1。这样子创建了一个独立的$1后项引用,一个独立的原文1.subject:要进行搜索和替换的字符串或字符串数组。如果subject是一个数组,搜索和替换会在subject的每一个元素上进行,并且返回值也会是一个数组。limit:每个模式在每个subject上进行替换的最大次数。默认是-1(无限)。count:如果指定,将会被填充为完成的替换次数。
3 mb_substr(string $str, int $start[, int $length [, string $encoding]])
(1)函数作用:获取字符串的部分。根据字符数执行一个多字节安全的substr()操作。位置从str的开始位置进行计数。第一个字符的位置是0,第二个字符位置是1,以此类推。(2)参数介绍:str:从该string中提取字符串start:str中要使用的第一个字符的位置。length:str中药使用的最大字符数。encoding:encoding参数为字符编码。如果省略,则使用内部字符编码。
三、 PHP函数
<!-- lang: php -->
<?php
<!-- lang: php -->header("Content-type: text/html; charset=utf-8");
<!-- lang: php -->/**
<!-- lang: php -->*
<!-- lang: php -->*@param string $content 内容
<!-- lang: php -->*@param int $maxWordNum 最多输出的字数
<!-- lang: php -->*/
<!-- lang: php -->function contentWordNumLimit($content, $maxWordNum = -1){
<!-- lang: php -->$count = 0;
<!-- lang: php --><!-- lang: php -->$patterns = array();
<!-- lang: php -->$patterns[0] = '/\'/'; //中文单引号
<!-- lang: php -->$patterns[1] = '/\"/'; //中文双引号
<!-- lang: php -->$patterns[2] = '/\n/';
<!-- lang: php --><!-- lang: php -->$replacements = array();
<!-- lang: php -->$replacements[0] = '‘';
<!-- lang: php -->$replacements[1] = '“';
<!-- lang: php -->$replacements[2] = ' ';
<!-- lang: php --><!-- lang: php -->if($maxWordNum > 0 && mb_strlen($content, 'utf-8') > $maxWordNum){
<!-- lang: php -->$content = nl2br(mb_substr($content, 0, $maxWordNum, 'utf-8').'......');
<!-- lang: php -->$content = preg_replace($patterns, $replacements, $content);
<!-- lang: php -->}else{
<!-- lang: php -->$content = preg_replace($patterns, $replacements, $content);
<!-- lang: php -->}
<!-- lang: php -->rerturn $content;
<!-- lang: php -->}
<!-- lang: php --><!-- lang: php -->
$content = "春江潮水连海平, 海上明月共潮生。\r\n滟滟)随波千万里, 何处春江无月明。\r\n江流宛转绕芳甸, 月照花林皆似霰。\r\n空里流霜不觉飞, 汀上白沙看不见。\r\n江天一色无纤尘, 皎皎空中孤月轮。\r\n江畔何人初见月? 江月何年初照人?\r\n人生代代无穷已, 江月年年望(一作“只”)相似。\r\n不知江月待何人, 但见长江送流水。\r\n白云一片去悠悠, 青枫浦上不胜愁。\r\n谁家今夜扁舟子? 何处相思明月楼?\r\n可怜楼上月徘徊, 应照离人妆镜台。\r\n玉户帘中卷不去, 捣衣砧上拂还来。\r\n此时相望不相闻, 愿逐月华流照君。\r\n鸿雁长飞光不度, 鱼龙潜跃水成文。\r\n昨夜闲潭梦落花, 可怜春半不还家。\r\n江水流春去欲尽, 江潭落月复西斜。(古音xiá)\r\n斜月沉沉藏海雾, 碣石潇湘 无限路。\r\n不知乘月几人归, 落月摇情满江树。";
<!-- lang: php -->
$limit = 100;
<!-- lang: php -->
$newContent = contentWordNumLimit($content, $limit);
<!-- lang: php -->
echo '《春江花月夜》原诗句:<br>'.$content;
<!-- lang: php -->
echo '<br>';
<!-- lang: php -->
echo '~~~~~~~~~~~~~~~~~~';
<!-- lang: php -->
echo '<br>';
<!-- lang: php -->
echo '《春江花月夜》限制100字诗句:<br>'.$newContent;
<!-- lang: php -->
?>运行结果:
《春江花月夜》原诗句:
春江潮水连海平, 海上明月共潮生。 滟滟)随波千万里, 何处春江无月明。
江流宛转绕芳甸, 月照花林皆似霰。 空里流霜不觉飞, 汀上白沙看不见。江天一色无纤尘, 皎皎空中孤月轮。 江畔何人初见月? 江月何年初照人?
人生代代无穷已, 江月年年望(一作“只”)相似。 不知江月待何人, 但见长江送流水。
白云一片去悠悠, 青枫浦上不胜愁。 谁家今夜扁舟子? 何处相思明月楼?
可怜楼上月徘徊, 应照离人妆镜台。 玉户帘中卷不去, 捣衣砧上拂还来。
此时相望不相闻, 愿逐月华流照君。 鸿雁长飞光不度, 鱼龙潜跃水成文。
昨夜闲潭梦落花, 可怜春半不还家。 江水流春去欲尽, 江潭落月复西斜。
(古音xiá) 斜月沉沉藏海雾, 碣石潇湘 无限路。 不知乘月几人归, 落月摇情满江树。
~~~~~~~~~~~~~~~~~~
《春江花月夜》限制100字诗句:
春江潮水连海平, 海上明月共潮生。
滟滟)随波千万里, 何处春江无月明。
江流宛转绕芳甸, 月照花林皆似霰。
空里流霜不觉飞, 汀上白沙看不见。
江天一色无纤尘, 皎皎空中孤月轮。
江畔何人......