PHP冒泡法排序与二分法查找实例
代码如下 | 复制代码 |
//冒泡法排序 |
今天简单的研究了一下最常用的冒泡法排序与二分法查找,写了一个简单的案例,加强自己对php的学习
,也希望对今后php学习者能提供一点点的帮助。
验证手机号码我们都是利用php正则表达试验证了,手机号的规则是长度11位然后是13,15,18等等开头,这个我们只要加以分类规划并可实现完美手机号码验证正则了。大家都应该有这个常识,中国的手机号码都是以数字“1”开头,然后利用“0~9”10个数字组成的11位
数字组合,那么我们的验证规则肯定要根据这个思路来写。
根据上面的简单思路,我们便可以写下以下的验证代码:
代码如下 | 复制代码 |
<?php |
但上面的代码显然是不够严谨的,因为这样,即使“18888888888”这样的手机号码也能通过验证了,因
此我们还要对其进行更为严格的验证,在严格之前请让我们先来看看中国常见的手机号码前三位都有那
些:
移动手机号码:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188
联通手机号码:130、131、132、152、155、156、185、186
电信手机号码:133、153、180、189、(1349卫通)
那么根据上面的特征,我们就可以将代码修改成这样的规则了:
代码如下 | 复制代码 |
<?php |
上面只能骓13,15开头的,如果有新段就不行了,我们可加以修改
代码如下 | 复制代码 |
function is_mobile($str){ |
这样就可以验证所有的手机号码了。
在php中html转换成文本提供了自带的函数strip_tags了,但有时此函数不够用,下面总结了一些用户自定的函数,各位可参考。最常用的使用php函数strip_tags
代码如下 | 复制代码 |
|
自定义函数
代码如下 | 复制代码 |
<?php $search = array ("'<script[^>]*?>.*?</script>'si", // 去掉 javascript $replace = array ("", $text = preg_replace ($search, $replace, $document); |
后来我从网上看到了一个使用PHP写的方法,使用这个方法也可以实现将HTML转为TXT文本,个人觉得也还蛮实用的,在这里分享一下,代码如下:
代码如下 | 复制代码 |
function HtmlToText($str){ $str=preg_replace("/<sty(.*)/style>|<scr(.*)/script>|<!--(.*)-->/isU","",$str);//去除CSS样式、JS脚本、HTML注释 $alltext="";//用于保存TXT文本的变量 $start=1;//用于检测<左、>右标签的控制开关 for($i=0;$i<strlen($str);$i++){//遍历经过处理后的字符串中的每一个字符 if(($start==0)&&($str[$i]==">")){//如果检测到>右标签,则使用$start=1;开启截取功能 $start=1; }else if($start==1){//截取功能 if($str[$i]=="<"){//如果字符是<左标签,则使用<font color='red'>|</font>替换 $start=0; $alltext.="<font color='red'>|</font>"; }else if(ord($str[$i])>31){//如果字符是ASCII大于31的有效字符,则将字符添加到$alltext变量中 $alltext.=$str[$i]; } } } //下方是去除空格和一些特殊字符的操作 $alltext = str_replace(" "," ",$alltext); $alltext = preg_replace("/&([^;&]*)(;|&)/","",$alltext); $alltext = preg_replace("/[ ]+/s"," ",$alltext); return $alltext; } |
使用上面这个方法也可以实现将简答的HTML代码转换为TXT文本。
例3
代码如下 | 复制代码 |
function html2text($str,$encode = 'GB2312') $str = preg_replace("/<style .*?</style>/is", "", $str); $str = preg_replace("/ /i", " ", $str); $str = preg_replace("/&/i", "&", $str); $str = preg_replace("/</i", "<", $str); $str = preg_replace("/“/i", '"', $str); $str = preg_replace("/‘/i", "'", $str); $str = preg_replace("/’/i", "'", $str); $str = preg_replace("/>/i", ">", $str); $str = preg_replace("/”/i", '"', $str); $str = strip_tags($str); |
有时候两个域名可能在不同的服务器上,但是我们依然希望二级域名能够顺利访问主域名的cookie,主域名可以顺利访问二级域名的cookie。比如bbs.www.111cn.net 希望能访问www.111cn.net和blog.www.111cn.net的cookie
下面介绍3种你可能常听到的全局cookie设置方式
代码如下 | 复制代码 |
setcookie("hzhuti",$s,time()+3600*12,'/','*.www.111cn.net'); |
*号无法成功设置一个cookie
代码如下 | 复制代码 |
setcookie("hzhuti",$s,time()+3600*12,'/','.www.111cn.net'); |
成功设置一个全局cookie ss.www.111cn.net下也能正确读取
代码如下 | 复制代码 |
setcookie("hzhuti",$s,time()+3600*12,'/','www.111cn.net'); |
成功设置一个全局cookie ss.www.111cn.net下也能正确读取
这种方式月小升的理解是仅仅www.111cn.net能够读取。月小升在FireFox下测试成功。IE下成功
代码如下 | 复制代码 |
setcookie("hzhuti",$s,time()+3600*12,'/','ss.www.111cn.net'); |
设置一个仅仅在ss.www.111cn.net域名下可以正确读取的cookie
网络上标准的说法为.www.111cn.net这样。
也有*的说法(该说法完全错误。。。)
下面推荐一个不错的php cookie操作的类,可以设置cookie、获取cookie、删除cookie。
代码如下 | 复制代码 |
<?php function PHP_COOKIE($cname, $cexpires="", $cdir="/", $csite="") if($cexpires){ $this->_dir=$cdir; function extract($cname="") if(empty($cname) && isset($this)){ if(get_magic_quotes_gpc()){ if($arr!==false && is_array($arr)){ foreach($arr as $var => $val){ $_COOKIE[$var]=$val; if(isset($GLOBALS["PHP_SELF"])){ if(isset($this)) $this->_val=$arr; } function put($var, $value) if(isset($GLOBALS["PHP_SELF"])){ if(empty($value)){ } function clear() function set() |
一篇文章复制过来,发现图片路径都是别人网站的,如何一键下载这些图片到本地,并且修改成为本地的路径呢。
代码如下 | 复制代码 |
/** * 获取替换文章中的图片路径 * @param string $xstr 内容 采集网页的content * @param string $keyword 创建照片的文件名 我写upimg * @param string $oriweb 网址 一般写null * @return string * */ function replaceimg($xstr,$keyword, $oriweb){ $basedir = dirname(__FILE__); //保存路径 $d = date('Ym', time()); $dirslsitss = $basedir.'/../uploads/'.$keyword.'/'.$d;//分类是否存在 if(!is_dir($dirslsitss)) { @mkdir($dirslsitss, 0777); } //匹配图片的src preg_match_all('#<img.*?src="([^"]*)"[^>]*>#i', $xstr, $match); foreach($match[1] as $imgurl){ $imgurl = $imgurl; if(is_int(strpos($imgurl, 'http'))){ $arcurl = $imgurl; } else { $arcurl = $oriweb.$imgurl; } $img=file_get_contents($arcurl); if(!empty($img)) { //保存图片到服务器 $fileimgname = time()."-".rand(1000,9999).".jpg"; $filecachs=$dirslsitss."/".$fileimgname; $fanhuistr = file_put_contents( $filecachs, $img ); $saveimgfile = "/uploads/$keyword"."/".$d."/".$fileimgname; $xstr=str_replace($imgurl,$saveimgfile,$xstr); } } return $xstr; } |
相关文章
antdesign-vue结合sortablejs实现两个table相互拖拽排序功能
这篇文章主要介绍了antdesign-vue结合sortablejs实现两个table相互拖拽排序功能,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-01-09- 这篇文章主要介绍了C# 参数按照ASCII码从小到大排序(字典序)的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要为大家详细介绍了js实现列表按字母排序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-08-11
- 在本篇文章里小编给大家整理的是关于C#实现排序的代码以及相关知识点,需要的朋友们参考下。...2020-06-25
图文详解Heap Sort堆排序算法及JavaScript的代码实现
这篇文章以图文详解Heap Sort堆排序算法及JavaScript的代码实现,堆排序算法基于类二叉树的堆数据结构,需要的朋友可以参考下...2016-05-05- 这篇文章主要为大家详细介绍了js实现数组冒泡排序、快速排序的原理,感兴趣的小伙伴们可以参考一下...2016-03-10
- 二分查找是一种在已经过排序的数组中搜索指定元素用的算法,这里我们就来看一下Ruby实现二分搜索(二分查找)算法的简单示例:...2020-06-30
- 这篇文章主要介绍了jquery事件冒泡,以及如何阻止jQuery事件冒泡现象,感兴趣的朋友可以参考一下...2016-01-07
- c# n个数排序实现代...2020-06-25
- 本文给大家汇总介绍了几个个人收藏的JavaScript实现冒泡排序的代码,都是非常的不错,有需要的小伙伴可以参考下...2016-06-12
- 这篇文章主要介绍了C#使用linq对数组进行筛选排序的方法,实例分析了C#实用linq扩展进行数组排序的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了jQuery实现查找最近父节点的方法,涉及jQuery针对元素节点操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2016-06-24
- 这篇文章主要介绍了JS实现的随机排序功能算法,结合具体实例形式分析了javascript常用的排序算法实现技巧,需要的朋友可以参考下...2017-06-15
- 冒泡排序即是对数组每次轮循出最大数或最小数放在队尾,这里我们来看一下C#实现冒泡排序算法的代码示例,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了C++实现的O(n)复杂度内查找第K大数算法,结合实例形式分析了算法的原理以及具体实现方法,需要的朋友可以参考下...2020-04-25
- 这两天在做地图这块,一点点js代码,各种坑。第一次接触js,各种难,下面就这几天的研究做一些总结,求坑 在事件监听器中使用闭包 在执行事件监听器时,通常可取的做法是将私有数据和持久性数据附加到对象中。JavaScript 不支...2014-05-31
- 这篇文章主要介绍了事件冒泡、事件捕获和事件委托,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-07-08
- 这篇文章主要介绍了jQuery实现对无序列表的排序功能,涉及jQuery与javascript常见的文本操作函数与sort排序函数的相关使用方法,具有一定参考借鉴价值,需要的朋友可以参考下...2016-07-01
- 这篇文章主要介绍了python系统指定文件的查找只输出目录下所有文件及文件夹,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-04-22
- 这篇文章主要介绍了C++ 字符串去重排序实例代码的相关资料,需要的朋友可以参考下...2020-04-25