$content : 当前的文章
$order :全部匹配


function parseImgs($content,$order='all')
{ 
    $pattern='/<img.*?src="(.*?)".*?>/is';  
    preg_match_all($pattern,$content,$match); 
    if(isset($match[1])&&!empty($match[1])){
        if($order==='all'){
            return [
            	'exists' => 'y',//图片是否存在 
		        'url' => $match[1]    //存在对应的URL
            ];//$match[1];
        }
        if(is_numeric($order)&&isset($match[1][$order])){
            return [
            	'exists' => 'y',//图片是否存在 
		        'url' => $match[1][$order]    //存在对应的URL
            ];//return $match[1][$order];
        }
    }
    return [
    	'exists' => 'n',//图片是否存在 
		 'url' => []    //存在对应的URL
    ];
}
//去除重复的值
function array_unique_list($arr) {
 
  $ar = array_map('serialize',$arr);
  $ar = array_unique($ar);
  return array_map('unserialize',$ar);
}
//13位时间戳
function Millisecond($time){
	list($msec,$sec) = explode ( " ",microtime ());
	$millisecond = intval($msec*1000) + $sec*1000;
	return $millisecond;
}
function generateCode()
{
	//生成只有大写字母和数字
	$chars = '0123456789';//所有字符的集合
	$len = 6;//码值的总长度
	$chars_length = strlen($chars);//字符串长度
	
	$code = '';//初始化码值
	for($i=1; $i<=$len; ++$i){//循环生成4个随机下标
		$rand_index = mt_rand(0,$chars_length-1);//得到0到长度-1之间的任意随机数
		$code .= $chars[$rand_index];//索引下标的字符串访问形式,拼凑码值
	}
	return $code;
}
	//日期换算
 function china_year($numYear){
		$china_era = array('0'=>'庚','1'=>'辛','2'=>'壬','3'=>'癸','4'=>'甲','5'=>'乙','6'=>'丙','7'=>'丁','8'=>'戊','9'=>'己');
		$china_branch = array('0'=>'申','1'=>'酉','2'=>'戌','3'=>'亥','4'=>'子','5'=>'丑','6'=>'寅','7'=>'卯','8'=>'辰','9'=>'巳','10'=>'午','11'=>'未');
		$lastNum = mb_strcut($numYear,-1);
		$remainder = $numYear%12;
		$chinaYear = $china_era[$lastNum].$china_branch[$remainder].'年';
		return $chinaYear;
	}
	
	//数组排序
	function list_sort_by($list,$field,$sortby='asc') {
	  if(is_array($list)){
	    $refer = $resultSet = array();
	    foreach ($list as $i => $data)
	      $refer[$i] = &$data[$field];
	    switch ($sortby) {
	      case 'asc': // 正向排序
	        asort($refer);
	        break;
	      case 'desc':// 逆向排序
	        arsort($refer);
	        break;
	      case 'nat': // 自然排序
	        natcasesort($refer);
	        break;
	    }
	    foreach ( $refer as $key=> $val)
	      $resultSet[] = &$list[$key];
	    return $resultSet;
	  }
	  return false;
 }
	//对数组$arr按照$keys进行排序,$type排序方式(asc或desc),$num返回多少项
  function arraySort($arr,$keys,$type,$num){
  	$keysvalue = $new_array = array();
  	foreach ($arr as $k=>$v){
  		$keysvalue[$k] = $v[$keys];
  	}
  	if($type == 'asc'){
  		asort($keysvalue);
  	}else{
  		arsort($keysvalue);
  	}
  	reset($keysvalue);
  	$i =0;
  	foreach ($keysvalue as $k=>$v){
  		$new_array[$i] = $arr[$k];
  		if ($i<$num){
  			$i++;
  		}else{
  			break;
  		}
  	}
  	return $new_array;
  }
//获取文章内的图片地址
  function getPicFromString($string)
  {
  	$pic = '';
  	$string = stripslashes($string);
  	$string = preg_replace("/\<img src=\".*?image\/face\/(.+?).gif\".*?\>\s*/is",'',$string);	//移除表情符
  	preg_match_all("/<[img|IMG].*?src\=[\"\'](.*?)[\"\']/i",$string,$mathes);
  	if(!empty($mathes[1]) || !empty($mathes[2])){
  		$pic_arrays = array();
  		$pic = $mathes[0];
  		foreach ($pic as $key){
  			preg_match_all("/src\=[\"\'](.*?)[\"\']/i",substr($key,5),$picture);
  			$pic_arrays[] = $picture[1][0];
  		}
  		$pic_array['exists']="y";
  		$pic_array['url']=$pic_arrays;
		}else{
  		$pic_array['exists']="n";
  	}
  	return $pic_array;
  }
 //去空格
  function delBlank($str)
  {
    $str = str_replace('&nbsp;',$str);
    $str = preg_replace("/\s(?=\s)/",$str);
    $str = preg_replace("/[\n\r\t]/",$str);
    $str = preg_replace("/ /","",$str); //匹配html中的空格
    return trim($str); //返回字符串
  
  }
 
  //去HTML标签
  function delLabel($string)
  {
  $body = preg_replace("/<(.*?)>/",$string);
  return $body;
  }

常用的正则表达式去重、匹配img标签、13位时间戳的更多相关文章

  1. HTML5数字输入仅接受整数的实现代码

    这篇文章主要介绍了HTML5数字输入仅接受整数的实现代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  2. 视频流 – 使用视频工具箱解码iOS 8中的h264

    需要解码h264流并获取像素缓冲区我知道iOS8上的视频工具箱可能1.如何将h264流转换为CMSampleBufferRef?

  3. ios – 使用大写符号在字符串swift中获取URL的正则表达式

    我尝试在文本中获取URL.所以,在此之前,我使用了这样一个表达式:但是当用户输入带有大写符号的URL时(例如Http://Google.com,它与它不匹配)我遇到了问题.我试过了:但什么都没发生.解决方法您可以使用正则表达式中的i内联标志关闭区分大小写,有关可用正则表达式功能的详细信息,请参阅FoundationFrameworkReference.(?ismwx-ismwx)Flagsetti

  4. ios – 访问文件属性与访问sqlite记录

    >看到上述结果后,我决定选择attributesOfItemAtPath方法.还有什么我不是考虑传递sqlite?

  5. ios – NSTimeInterval到unix时间戳

    我从cmmotionmanager获取CMDeviceMotion对象.CMDeviceMotion的一个属性是时间戳,表示为NSTimeInterval.根据文档,这允许“亚毫秒”时间戳精度.不幸的是,NSTimeInterval是自上次设备启动以来计算的,对以原始形式使用它提出了重大挑战.有没有人有一个工作代码将此NSTimeInterval转换为类似时间戳的Unix?解决方法在将磁力计值与CoreMotion事件进行比较时,我遇到了类似的问题.如果要转换这些NSTimeIntervals,您只需要计

  6. ios – 更改JSQMessagesViewController中的时间戳逻辑

    SOMessaging一天一天怎么样?

  7. ios – 如何在Swift 3中使用正则表达式?

    解决方法我相信.当没有其他选项适用时,将使用.allZeros.因此,使用Swift3,您可以传递一个空的选项列表或省略options参数,因为它默认为无选项:要么请注意,在Swift3中,您不再使用error参数.它现在抛出.

  8. 如何从iOS中的CMSampleBufferRef获取相机数据当前捕获的时间戳

    我开发和iOS应用程序,将捕获的相机数据保存到一个文件,我使用捕获CMSampleBufferRef,并将编码为H264格式,帧将使用AVAssetWriter保存到文件.我遵循示例源代码来创建此应用程序:http://www.gdcl.co.uk//2013/02/20/iOS-Video-Encoding.html现在我想获得保存的视频帧的时间戳来创建一个新的电影文件,为此我做了以下事情1)找

  9. ios – lldb断点在类目标c中的所有方法

    如何使用lldb在ObjectiveC类中的所有方法上自动设置断点?

  10. ios – 如何维护两个不同设备之间的时钟会话?

    我正在研究iOS应用程序,它需要在接受两个设备用户时在两个设备之间维持时钟计时器会话?但我不确定如何在两台设备上都没有时间缺陷的情况下实现这一目标?

随机推荐

  1. 法国电话号码的正则表达式

    我正在尝试实施一个正则表达式,允许我检查一个号码是否是一个有效的法国电话号码.一定是这样的:要么:这是我实施的但是错了……

  2. 正则表达式 – perl分裂奇怪的行为

    PSperl是5.18.0问题是量词*允许零空间,你必须使用,这意味着1或更多.请注意,F和O之间的空间正好为零.

  3. 正则表达式 – 正则表达式大于和小于

    我想匹配以下任何一个字符:或=或=.这个似乎不起作用:[/]试试这个:它匹配可选地后跟=,或者只是=自身.

  4. 如何使用正则表达式用空格替换字符之间的短划线

    我想用正则表达式替换出现在带空格的字母之间的短划线.例如,用abcd替换ab-cd以下匹配字符–字符序列,但也替换字符[即ab-cd导致d,而不是abcd,因为我希望]我如何适应以上只能取代–部分?

  5. 正则表达式 – /bb | [^ b] {2} /它是如何工作的?

    有人可以解释一下吗?我在t-shirt上看到了这个:它似乎在说:“成为或不成为”怎么样?我好像没找到’e’?

  6. 正则表达式 – 在Scala中验证电子邮件一行

    在我的代码中添加简单的电子邮件验证,我创建了以下函数:这将传递像bob@testmymail.com这样的电子邮件和bobtestmymail.com之类的失败邮件,但是带有空格字符的邮件会漏掉,就像bob@testmymail也会返回true.我可能在这里很傻……当我测试你的正则表达式并且它正在捕捉简单的电子邮件时,我检查了你的代码并看到你正在使用findFirstIn.我相信这是你的问题.findFirstIn将跳转所有空格,直到它匹配字符串中任何位置的某个序列.我相信在你的情况下,最好使用unapp

  7. 正则表达式对小字符串的暴力

    在测试小字符串时,使用正则表达式会带来性能上的好处,还是会强制它们更快?不会通过检查给定字符串的字符是否在指定范围内比使用正则表达式更快来强制它们吗?

  8. 正则表达式 – 为什么`stoutest`不是有效的正则表达式?

    isthedelimiter,thenthematch-only-onceruleof?PATTERN?

  9. 正则表达式 – 替换..与.在R

    我怎样才能替换..我尝试过类似的东西:但它并不像我希望的那样有效.尝试添加fixed=T.

  10. 正则表达式 – 如何在字符串中的特定位置添加字符?

    我正在使用记事本,并希望使用正则表达式替换在字符串中的特定位置插入一个字符.例如,在每行的第6位插入一个逗号是什么意思?如果要在第六个字符后添加字符,请使用搜索和更换从技术上讲,这将用MatchGroup1替换每行的前6个字符,后跟逗号.

返回
顶部