php利用正则获取指定位置内容

 更新时间:2016年11月25日 15:53  点击:1447
我们经常会碰以要获取一个字符串指定部份的内容,下面我们用正则匹配来获取下一页的url怎么样。
 代码如下 复制代码
$str = 'ht
<td align=right>
<a href=http://www.111cn.net/>第一页</a>&nbsp;&nbsp;& nbsp;&nbsp;<a href=http://down.111cn.net/index_2.html>上一页</a>&nbsp;& nbsp;&nbsp;&nbsp;<a href=http://mb.111cn.net/index_4.html>下一页</a>
';
preg_match_all('/<a[^>]*href=([^>]*)>下一页</a>/is', $str, $matches);
print_r($matches[1]);

//方法二

 代码如下 复制代码
preg_match('/<a href=(.*)[/s]*>下一页</a>/u', $s, $arr);

/*
正则表达式到底是什么东西?

在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。

很可能你使用过windows/dos下用于文件查找的通配符(wildcard),也就是*和?。如果你想查找某个目录下的所有的word文档的话,你会搜索*.doc。在这里,*会被解释成任意的字符串。和通配符类似,正则表达式也是用来进行文本匹配的工具,只不过比起通配符,它能更精确地描述你的需求——当然,代价就是更复杂——比如你可以编写一个正则表达式,用来查找所有以0开头,后面跟着2-3个数字,然后是一个连字号"-",最后是7或8位数字的字符串(像010-12345678或0376-7654321)。

这是一款完整的php文件上传实例代码,支持上传的类型可以创建类时自定义,可支持的上传文件类型哦。
 代码如下 复制代码

<form name="form1" enctype="multipart/form-data" method="post" action="">
  <label for="filefield"></label>
  <input type="file" name="filefield" id="filefield">
  <input type="submit" name="button" id="button" value="上传文件">
</form>
<?php
/*
 * $name;     上传文件名
 * $size:    上传文件大小
 * $path;     文件原路径
 * $newpath:  设置新路径
 * $not:      禁止上传的文件类型数组
 * $notsize:  限制文件大小的值
 * $move:     上传文件源
 *
 */

class fileupload {
 public $name;
 public $size;
 public $path;
 public $newpath;
 public $not = array();
 public $notsize;
 public $move;
 public $allfile = array();
    function __construct($name,$size,$path,$newpath,$not,$notsize) {
     $this ->name = $name;
     $this ->size = $size/1048576;
     $this ->path = $path;
     $this ->newpath = $newpath;
     $this ->not = explode(',',$not);
     $this ->notsize = $notsize;
        $this ->upload();
    }
    /*
     * 上传程序
     * 首先判断目录是否存在
     * 判断文件类型及大小
     */
    function upload(){
     if(!file_exists($this->newpath)){
      echo "<script>alert('该目录不存在!')</script>";
      return;
     }else{
            $arr = explode('.',$this->name);
            if(in_array($arr[1],$this->not)){
             echo "<script>alert('该类型文件禁止上传!')</script>";
             return;
            }else if($this->name == ''){
             echo "<script>alert('请选择上传的文件!')</script>";
             return;
            }else if($this->size>$this->notsize){
             echo "<script>alert('上传文件超过规定大小!')</script>";
             return;
            }else if(file_exists("$this->newpath"."$this->name")){
                echo "<script>alert('该文件已经存在!')</script>";
                return;
            }
            else{
               $this->move = move_uploaded_file($this->path,$this->newpath.$this->name);
               $this->move();
             }
         }
    }
    /*
     * 判断文件上传是否成功
     */
    function move(){
     if($this->move){
      echo "<script>alert('文件上传成功!')</script>";
      return;
     }else{
      echo "<script>alert('上传失败!')</script>";
      return;
     }
    }
}


 $fu = new fileupload($array[name],$array[size],$array[tmp_name],'./www.111cn.net/','exe,rar',5);

这是一款使用方便简单的php文件上传函数,只你要设置三个参数就可以方便的把你指定的文件类型上传批指定的目录了。
 代码如下 复制代码

function upfile($filename,$type,$path)
{

 $tempfile=$_files[$filename];//接收上传的临时文件

 //有没有上传成功
 if($error=$tempfile["error"])
 {
  switch($error){
   case 1:$errorstr="上传的文件超过了2m请返回检查。";break;
   case 2:$errorstr="上传文件的大小超过了 html 表单中限定值8m";break;
   case 3:$errorstr="文件只有部分被上传";break;
   case 4:$errorstr="没有文件被上传";break;
   case 6:$errorstr="找不到临时文件夹";break;
   case 7:$errorstr="文件写入失败";break;
  }
  showmsg($errorstr);
 }

 //文件类型是否在允许的范围内
 $filename=$tempfile["name"];//取上传原文件名
 $tmparr=explode(".",$filename);
 $extname=strtolower($tmparr[count($tmparr)-1]);//取出原扩展名并转为小写字母
 if(!in_array($extname,$type)) showmsg("上传的文件类型不允许,请返回检查.");

 //改文件名
 $newfile="zy".time().rand(100,1000).".".$extname;//构成新的文件名

 //路径
 $path.=$newfile;

 //重名判断
 if(file_exists($path)){
  $newfile="zy".time().rand(100,1000).".".$extname;//构成新的文件名
  $path.=$newfile;
 }

 if(!move_uploaded_file($tempfile['tmp_name'],$path))showmsg("文件移动失败。");

 return $newfile;
}

//些上传函数调用方法

 代码如下 复制代码
upfile($filename,$type,$path);
/*
参数:
$filename  为上传表单 type=file的名称
$type 允许上传的文件类型
$path 保存到文件路径


*/

这是一款简单实用的php分页代码,如果你是php初学者来看看这款实用的分页代码吧。
 代码如下 复制代码

function page($sql,$pagesize=10,$class=""){
 
 if(!is_string($sql)){ return 0;exit;}
 $result=mysql教程_query($sql);
 if(!$result){return 0;exit;}
 if(!$recordnum=mysql_num_rows($result)){return 0;exit;}
 $totalpage=ceil($recordnum/$pagesize);
 $page=(int)$_get['page'];
 if($page<=1) $page=1;
 if($page>=$totalpage) $page=$totalpage;
 $recordno=($page-1)*$pagesize;
 $sql.=" limit $recordno,$pagesize";
 $result=mysql_query($sql);
 $url=$_server["php_self"];

 if($page==1)$str= "首页|上页";
 else $str.="<a href="$url?".$class."&page=1">首页</a>|<a href="$url?".$class."&page=".($page-1)."">上页</a>";
 if($page==$totalpage) $str.=  "|下页|末页";
 else  $str.="|<a href="$url?".$class."&page=".($page+1)."">下页</a>|<a href="$url?".$class."&page=$totalpage ">末页</a>";
 $str.=" 当前第 $page 页 共 $totalpage 页";
 return array($result,$str);
}
//调用方法

$sql="select * from images order by imid";
$result=page($sql,16);

/*
简单的原是就是根据传过来的传到数据库教程中去读取相对应多的记录,这样就实现的分页。
*/

下面这三款php 数组 写入文件的代码,有二种是把数组以php格式保存,这样可以以php来运行此文件,还有一个是写缓存文件了,
 代码如下 复制代码
$str = "<?php $list = " . var_export($list) . "; ?>";
//写入temp.inc.php $file = 'temp.inc.php'; $fo = fopen($file, 'w'); fwrite($fl, $str); fclose($fo);

 

 代码如下 复制代码
function arrayeval($array, $level = 0) { $space = " "; for($i = 0; $i <= $level; $i++) { $space .= " "; } $evaluate = "array $space( "; $comma = "$space"; if(!empty($array)){ foreach($array as $key => $val) { $val = empty($val)?' ':$val; $key = is_string($key) ? "'".addcslashes($key, ''\')."'" : $key; $val = is_string($val) ? "'".addcslashes($val, ''\')."'" : $val; if(is_array($val)) { $evaluate .= "$comma$key => ".arrayeval($val, $level + 1); } else { $evaluate .= "$comma$key => $val"; } $comma = ", $space"; } } $evaluate .= " $space)"; return $evaluate; }

 
$file="./www.111cn.net/file.cache";  
 
$array = array("count" => "3000",  "num"  =>"300"); 
 
//缓存  
 

 代码如下 复制代码
file_put_contents($file,serialize($array));//写入缓存 
$handle = fopen($file, "r"); 
$cachearray = unserialize(fread($handle, filesize ($file))); 
print_r($cachearray); 
[!--infotagslink--]

相关文章

  • PHP成员变量获取对比(类成员变量)

    下面本文章来给大家介绍在php中成员变量的一些对比了,文章举了四个例子在这例子中分别对不同成员变量进行测试与获取操作,下面一起来看看。 有如下4个代码示例,你认...2016-11-25
  • php 获取用户IP与IE信息程序

    php 获取用户IP与IE信息程序 function onlineip() { global $_SERVER; if(getenv('HTTP_CLIENT_IP')) { $onlineip = getenv('HTTP_CLIENT_IP');...2016-11-25
  • php获取一个文件夹的mtime的程序

    php获取一个文件夹的mtime的程序了,这个就是时间问题了,对于这个问题我们来看小编整理的几个例子,具体的操作例子如下所示。 php很容易获取到一个文件夹的mtime,可以...2016-11-25
  • 如何获取网站icon有哪些可行的方法

    获取网站icon,常用最简单的方法就是通过website/favicon.ico来获取,不过由于很多网站都是在页面里面设置favicon,所以此方法很多情况都不可用。 更好的办法是通过google提供的服务来实现:http://www.google.com/s2/favi...2014-06-07
  • iOS设置UIButton文字显示位置和字体大小、颜色的方法

    这篇文章给大家分享了iOS如何设置UIButton的文字显示位置和字体的大小、颜色,文中给出了示例代码,相信对大家的学习和理解很有帮助,有需要的朋友们下面来一起看看吧。...2020-06-30
  • jquery如何获取元素的滚动条高度等实现代码

    主要功能:获取浏览器显示区域(可视区域)的高度 : $(window).height(); 获取浏览器显示区域(可视区域)的宽度 :$(window).width(); 获取页面的文档高度 $(document).height(); 获取页面的文档宽度 :$(document).width();...2015-10-21
  • jquery获取div距离窗口和父级dv的距离示例

    jquery中jquery.offset().top / left用于获取div距离窗口的距离,jquery.position().top / left 用于获取距离父级div的距离(必须是绝对定位的div)。 (1)先介绍jquery.offset().top / left css: 复制代码 代码如下: *{ mar...2013-10-13
  • Jquery 获取指定标签的对象及属性的设置与移除

    1、先讲讲JQuery的概念,JQuery首先是由一个 America 的叫什么 John Resig的人创建的,后来又很多的JS高手也加入了这个团队。其实 JQuery是一个JavaScript的类库,这个类库集合了很多功能方法,利用类库你可以用简单的一些代...2014-05-31
  • 一个关于JS正则匹配的踩坑记录

    这篇文章主要给大家介绍了一个关于JS正则匹配的踩坑记录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-04-13
  • C#获取字符串后几位数的方法

    这篇文章主要介绍了C#获取字符串后几位数的方法,实例分析了C#操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • jquery获取tagName再进行判断

    如果是为了取到tagName后再进行判断,那直接用下面的代码会更方便: $(element).is('input') 如果是要取到标签用作到别的地方,可以使用一下代码: $(element)[0].tagName 或: $(element).get(0).tagName...2014-05-31
  • DOM XPATH获取img src值的query

    复制代码 代码如下:$nodes = @$xpath->query("//*[@id='main_pr']/img/@src");$prurl = $nodes->item(0)->nodeValue;...2013-10-04
  • PHP 如何获取二维数组中某个key的集合

    本文为代码分享,也是在工作中看到一些“大牛”的代码,做做分享。 具体是这样的,如下一个二维数组,是从库中读取出来的。 代码清单: 复制代码 代码如下: $user = array( 0 => array( 'id' => 1, 'name' => '张三', 'ema...2014-06-07
  • php获取汉字拼音首字母的方法

    现实中我们经常看到这样的说明,排名不分先后,按姓名首字母进行排序。这是中国人大多数使用的排序方法。那么在php程序中该如何操作呢?下面就分享一下在php程序中获取汉字拼音的首字母的方法,在网上搜到的大多数是有问题的...2015-10-23
  • 使用C#获取系统特殊文件夹路径的解决方法

    本篇文章是对使用C#获取系统特殊文件夹路径的解决方法进行了详细的分析介绍,需要的朋友参考下...2020-06-25
  • php如何获取文件的扩展名

    网上也有很多类似的方法,不过都存在这样那样的不严谨的问题,本文就不一一分析了,这里只给出最正确的利用php 获取文件扩展名(文件后缀名)的方法。 function get_extension($filename){ return pathinfo($filename,PATHIN...2015-10-30
  • 基于JavaScript获取鼠标位置的各种方法

    这篇文章主要介绍了基于JavaScript获取鼠标位置的各种方法 ,需要的朋友可以参考下...2015-12-18
  • C#获取变更过的DataTable记录的实现方法

    这篇文章主要介绍了C#获取变更过的DataTable记录的实现方法,对初学者很有学习借鉴价值,需要的朋友可以参考下...2020-06-25
  • 如何获取百度搜索结果页中解密之后的真实链接

    大家用百度搜索的时候,可能会发现,结果链接用的还是百度的链接,点击之后才会跳转到另外一个页面,另外一个页面的真实链接如何获取到呢?? 通过分析发现: 可以看出,返回...2016-05-19
  • 用python获取txt文件中关键字的数量

    这篇文章主要介绍了如何用python获取txt文件中关键字的数量,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下...2020-12-24