php KindEditor文章内分页的实例方法
代码,我们只要以它为分切符,就可以了,具体分页方法如下。
我的理解核心代码
代码如下 | 复制代码 |
$news = array( $newsModel->insert($news); //news_detail.php?p=2 : $news_one = $newsModel->get(1); $content_pages = explode('[--page--]',$news_one['content']); $cur_page = min( max(1,intval($_GET['p'])), count($content_pages) ); $news_one['content'] = $content_pages[$cur_page-1]; return render('news_detail.html', $news_one); |
我们知道在很多在线编辑器里都有插入分页的功能,像在KindEditor中点击插入分页编辑器会在光标的地方插入如下的代码:
代码如下 | 复制代码 |
<hr style="page-break-after:always;" class="ke-pagebreak" /> |
而UEditor则会在光标处加入:
_ueditor_page _break_tag__ueditor_page和_break_tag_之间是没有空格的,由于本网站也是用的ueditor使用的分页符是break_tag,所以上面加了空格避免影响
下面我以KindEditor为例,贴上我的代码:
代码如下 | 复制代码 |
<!doctype html> $content = preg_replace("'<hr(.*)/>'iUs", "<hr>", $content); } echo "<div>{$page}</div>"; ?> |
按照上面的代码你就可以实现文章分页了,效果如下图:
如果你用的是UEditor编辑器分页符默认是:_ueditor_page _break_tag_ (你可以在ueditor.config.js中修改pageBreakTag的设定)则可以将上面的代码稍作修改即可:
代码如下 | 复制代码 |
$content = preg_replace("'<hr(.*)/>'iUs", "<hr>", $content); 改为: $content = explode("_ueditor_page _break_tag_", $content); |
这样就可以了,当然你可以自定义任何分页符
今天我们给大家介绍如何判断数组中存在我们要找的元素值哦,这里介绍如果是一维数据就直接in_array但多维数据复杂一点。我们先来解一下in_array检查数组中是否存在某个值
代码如下 | 复制代码 |
<?php echo “(1)”;
$a = array('1.10', 12.4, 1.13); if (in_array('12.4', $a, true)) {//in_array() 严格类型检查
$a = array(array('p', 'h'), array('p', 'r'), 'o'); if (in_array(array('p', 'h'), $a)) { } if (in_array(array('f', 'i'), $a)) {//in_array() 中用数组作为 needle
程序运行结果是: (1)Got Irix (2)1.13 found with strict check (3)'ph' was found 'o' was found |
上面都是一维数组了很简单,下面来看多维数据是否存在某个值
$arr = array(
代码如下
复制代码
array('a', 'b'),
array('c', 'd')
);
in_array('a', $arr); // 此时返回的永远都是 false
deep_in_array('a', $arr); // 此时返回 true 值
function deep_in_array($value, $array) {
foreach($array as $item) {
if(!is_array($item)) {
if ($item == $value) {
return true;
} else {
continue;
}
}
if(in_array($value, $item)) {
return true;
} else if(deep_in_array($value, $item)) {
return true;
}
}
return false;
}
该方法是在php帮助手册in_array方法详解页面下的评论看到的,平时没事多看看帮助手册,特别是后面的经典评论,里面收集了不少人的经典方法啊。
冒泡排序(BubbleSort)的基本概念是:
依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。
例1,简单实现冒泡排序
代码如下 | 复制代码 |
<?php print_r($arr); |
例2
代码如下 | 复制代码 |
<?php $arr=array(100,99,200,5,-4,6,-7); |
例1
主要功能是:功能明确,易于修改维护和扩展; 英文的字串:不变返回(包括数字);中文字符串:返回拼音首字符; 中英混合串: 返回拼音首字符和英文。该算法采用了二分法查找,修复了之前字母Z读取成Y的错误。好东西要收藏,故在此留下印记,以供后人考证!
代码如下 | 复制代码 |
<?php /** |
例2
取汉字的asc区间然后返回汉字首字母了。
代码如下 | 复制代码 |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <?php function getfirstchar($s0){ $fchar = ord($s0{0}); if($fchar >= ord("A") and $fchar <= ord("z") )return strtoupper($s0{0}); $s1 = iconv("UTF-8","gb2312", $s0); $s2 = iconv("gb2312","UTF-8", $s1); if($s2 == $s0){$s = $s1;}else{$s = $s0;} $asc = ord($s{0}) * 256 + ord($s{1}) - 65536; if($asc >= -20319 and $asc <= -20284) return "A"; if($asc >= -20283 and $asc <= -19776) return "B"; if($asc >= -19775 and $asc <= -19219) return "C"; if($asc >= -19218 and $asc <= -18711) return "D"; if($asc >= -18710 and $asc <= -18527) return "E"; if($asc >= -18526 and $asc <= -18240) return "F"; if($asc >= -18239 and $asc <= -17923) return "G"; if($asc >= -17922 and $asc <= -17418) return "I"; if($asc >= -17417 and $asc <= -16475) return "J"; if($asc >= -16474 and $asc <= -16213) return "K"; if($asc >= -16212 and $asc <= -15641) return "L"; if($asc >= -15640 and $asc <= -15166) return "M"; if($asc >= -15165 and $asc <= -14923) return "N"; if($asc >= -14922 and $asc <= -14915) return "O"; if($asc >= -14914 and $asc <= -14631) return "P"; if($asc >= -14630 and $asc <= -14150) return "Q"; if($asc >= -14149 and $asc <= -14091) return "R"; if($asc >= -14090 and $asc <= -13319) return "S"; if($asc >= -13318 and $asc <= -12839) return "T"; if($asc >= -12838 and $asc <= -12557) return "W"; if($asc >= -12556 and $asc <= -11848) return "X"; if($asc >= -11847 and $asc <= -11056) return "Y"; if($asc >= -11055 and $asc <= -10247) return "Z"; return null; } function pinyin1($zh){ $ret = ""; $s1 = iconv("UTF-8","gb2312", $zh); $s2 = iconv("gb2312","UTF-8", $s1); if($s2 == $zh){$zh = $s1;} for($i = 0; $i < strlen($zh); $i++){ $s1 = substr($zh,$i,1); $p = ord($s1); if($p > 160){ $s2 = substr($zh,$i++,2); $ret .= getfirstchar($s2); }else{ $ret .= $s1; } } return $ret; } echo "这是中文字符串<br/>"; echo pinyin1('这是中文字符串'); ?> |
一、$arr['key'] 与 $arr["key"] 与 $arr[key]的差别:
以上三种方式主要是通过字符串类型数组下标即数组键访问数组的值,如果数组下标为索引类型即键值为数字则无需注意。
1,$arr['key'] 单引号模式被直接解析为$arr的值;
2,$arr["key"]双引号模式会首先分析"key"字符串内部是否包含 PHP变量,然后再解析为$arr的值;
3,$arr[key]没有任何引号会先分析局部作用域内有没有key常量定义(即有无define('key','val')),
如果有则使用局部key常量代表的常量值作为数组键值;
否则继续分析全局作用域内有没有key常量定义,
如果有则使用全局key常量代表的常量值作为数组键值;
否则内部转换key为'key'字符串标量值并抛出E_NOTICE异常。
二、$arr["$str_key"] 与 $arr[$str_key]的差别
此方式亦为通过字符串类型数组下标访问数组的值,
如果数组下标为索引类型即数字则无需注意。
其实这里无需额外添加双引号以表示$str_key变量代表的是字符串值,
即$arr["$str_key"] === $arr[$str_key]
代码如下 | 复制代码 |
<?php |
相关文章
- 我们这里介绍php与KindEditor编辑器使用时如何利用KindEditor编辑器的分页功能实现文章内容分页,KindEditor编辑器在我们点击分页时会插入代码,我们只要以它为分切符,就...2016-11-25
php 中file_get_contents超时问题的解决方法
file_get_contents超时我知道最多的原因就是你机器访问远程机器过慢,导致php脚本超时了,但也有其它很多原因,下面我来总结file_get_contents超时问题的解决方法总结。...2016-11-25- 最近接了一个项目,其中有需求要用到jquery分页控件,上网也找到了需要分页控件,各种写法各种用法,都是很复杂,最终决定自己动手写一个jquery分页控件,全当是练练手了。写的不好,还请见谅,本分页控件在chrome测试过,其他的兼容性...2015-10-30
- 相信很多站长都遇到过这样一个问题,访问页面时出现408错误,下面一聚教程网将为大家介绍408错误出现的原因以及408错误的解决办法。 HTTP 408错误出现原因: HTT...2017-01-22
- 下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
- php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
- ps软件是现在非常受大家喜欢的一款软件,有着非常不错的使用功能。这次文章就给大家介绍下ps把文字背景变透明的操作方法,喜欢的一起来看看。 1、使用Photoshop软件...2017-07-06
intellij idea快速查看当前类中的所有方法(推荐)
这篇文章主要介绍了intellij idea快速查看当前类中的所有方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-09-02- 1.在没有设置默认值的情况下: 复制代码 代码如下:SELECT userinfo.id, user_name, role, adm_regionid, region_name , create_timeFROM userinfoLEFT JOIN region ON userinfo.adm_regionid = region.id 结果:...2014-05-31
js导出table数据到excel即导出为EXCEL文档的方法
复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta ht...2013-10-13- 本文实例讲述了jquery实现的伪分页效果代码。分享给大家供大家参考,具体如下:这里介绍的jquery伪分页效果,在火狐下表现完美,IE全系列下有些问题,引入了jQuery1.7.2插件,代码里有丰富的注释,相信对学习jQuery有不小的帮助,期...2015-10-30
- 批量更新mysql更新语句很简单,更新一条数据的某个字段,一般这样写:复制代码 代码如下:UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value';如果更新同一字段为同一个值,mysql也很简单,修改下where即...2013-10-04
- 本文涉及的主题虽然很基础,在许多人看来属于小伎俩,但在JavaScript基础知识中属于一个综合性的话题。这里会涉及到对象属性的封装、原型、构造函数、闭包以及立即执行表达式等知识。公有方法 公有方法就是能被外部访问...2015-11-08
- ps软件是一款非常不错的图片处理软件,有着非常不错的使用效果。这次文章要给大家介绍的是ps怎么制作倒影,一起来看看设计倒影的方法。 用ps怎么做倒影最终效果̳...2017-07-06
- 单个字符分割 string s="abcdeabcdeabcde"; string[] sArray=s.Split('c'); foreach(string i in sArray) Console.WriteLine(i.ToString()); 输出下面的结果: ab de...2020-06-25
- 最近想自学PHP ,做了个验证码,但不知道怎么搞的,总出现一个如下图的小红叉,但验证码就是显示不出来,原因如下 未修改之前,出现如下错误; (1)修改步骤如下,原因如下,原因是apache权限没开, (2)点击打开php.int., 搜索extension=ph...2013-10-04
安卓手机wifi打不开修复教程,安卓手机wifi打不开解决方法
手机wifi打不开?让小编来告诉你如何解决。还不知道的朋友快来看看。 手机wifi是现在生活中最常用的手机功能,但是遇到手机wifi打不开的情况该怎么办呢?如果手机wifi...2016-12-21- javascript控制页面控件隐藏显示的两种方法,方法的不同之处在于控件隐藏后是否还在页面上占位 方法一: 复制代码 代码如下: document.all["panelsms"].style.visibility="hidden"; document.all["panelsms"].style.visi...2013-10-13
连接MySql速度慢的解决方法(skip-name-resolve)
最近在Linux服务器上安装MySql5后,本地使用客户端连MySql速度超慢,本地程序连接也超慢。 解决方法:在配置文件my.cnf的[mysqld]下加入skip-name-resolve。原因是默认安装的MySql开启了DNS的反向解析。如果禁用的话就不能...2015-10-21- 本篇文章是对C#方法进行了详细的总结与介绍,需要的朋友参考下...2020-06-25