php获取超链接文本内容的几款正则表达式

 更新时间:2016年11月25日 15:55  点击:1797

//方法一

 代码如下 复制代码
preg_match_all('/<(a|a)[s]{0,1}[w=":()]*>[ ]*(check user)[ ]*</(a|a)>/i',$string,$matches);

//方法二

 代码如下 复制代码

preg_match_all('/<a[dd]*>check user</a>/i',$string,$matches);

print_r($matches[0]);

//方法三

 代码如下 复制代码

preg_match_all('/<a[^>]*>[^<]*</a>/i',$string,$matches);

print_r($matches[0]);

//方法四

 代码如下 复制代码
preg_match_all('/<a.+?>check user</a>/is',$str,$arr);


//方法五

 代码如下 复制代码

preg_match_all('/<a.+?>check user</a>/is',$str,$arr);

//用正则过滤html标签

 代码如下 复制代码
$html_body ="<a href='#'>www.111cn.net</a>";
preg_replace("/(</?)(w+)([^>]*>)/e",
             "'\1'.strtoupper('\2').'\3'",
             $html_body);


   
//用php教程自带函数strip_tags

 代码如下 复制代码
echo strip_tags("hello <b>world!www.111cn.net</b>");

//用户自定义

 代码如下 复制代码
function filterhtml($str) {
        $str=eregi_replace("</*[^<>]*>", '', $str);
        $str=str_replace(" ", '', $str);
        $str=str_replace(" ", '', $str);
        $str=str_replace(" ", '', $str);
        $str=str_replace("::", ':', $str);
        $str=str_replace(" ", '', $str);
   //$str=str_replace("&nbsp;", '', $str);
        return $str;
}

//其它可能对你有用的方法

1,过滤所有html标签的正则表达式:

 代码如下 复制代码
</?[^>]+>

2,过滤所有html标签的属性的正则表达式:

 代码如下 复制代码
$html = preg_replace("/<([a-za-z]+)[^>]*>/","<\1>",$html);

3,过滤部分html标签的正则表达式的排除式(比如排除<p>,即不过滤<p>):

 代码如下 复制代码
</?[^pp/>]+>

4,过滤部分html标签的正则表达式的枚举式(比如需要过滤<a><p><b>等):

 代码如下 复制代码
</?[aappbb][^>]*>

5,过滤部分html标签的属性的正则表达式的排除式(比如排除alt属性,即不过滤alt属性):

 代码如下 复制代码
s(?!alt)[a-za-z]+=[^s]*

6,过滤部分html标签的属性的正则表达式的枚举式(比如alt属性):

 代码如下 复制代码
(s)alt=[^s]*

 

//php教程 curl实例

 代码如下 复制代码

session_write_close();

$pageurl = "http://www.111cn.net/index.html";
curl_setopt($ch, curlopt_returntransfer, 1);
curl_setopt ($ch, curlopt_url, $pageurl );
$html = curl_exec ( $ch );
curl_close($ch);

//then you need to fix pathing to absolute
$search = "/(src|href|background)="[^:,^>,^"]*"/i";

preg_match_all ( $search, $html, $a_matches );

//php fopen实例

 代码如下 复制代码

$file = fopen("http://www.111cn.net/","r"); //读取远程文件

$file = fopen("a.txt","r");//读取本地文件

//php file_get_contents

$homepage = file_get_contents('http://www.111cn.net/'); //读取远程文本
echo $homepage;

 代码如下 复制代码
// <= php 5
$file = file_get_contents('./people.txt', true);
// > php 5
$file = file_get_contents('./people.txt', file_use_include_path); //打开本地文本

 

//count.php

 代码如下 复制代码

$aid  = isset( $_GET['aid'] )?$_GET['aid']:'';
$t = isset( $_GET['t'] )?$_GET['t']:'';
if( intval( $aid ) )
{
 if( $t =='show' )
 {
  echo "document.write('120');";
 }
 else
 {
  $conn = mysql教程_connect('www.111cn.net','root','root') ;  
  $sql = "Update test set click_num = click_num+1 where aid ='$aid'";
  mysql_db_query('db',$sql,$conn);
 }
}

?>


html代码

 代码如下 复制代码
<script language="javascript教程" src="count.php?aid=5&t=show"></script> 显示浏览次数
<script language="javascript" src="count.php?aid=5"></script> 增加浏览次数

我们只要把这段代码放到html页面,再把当前html 页面的id给aid就行了,这样你的静态页面的访问次数你也可以把握知道了哦。

本文章原创于www.111cn.net转载注明出处

 代码如下 复制代码

function getRelativePath($a, $b) {  
    $returnPath = array(dirname($b));  
    $arrA = explode('/', $a);  
    $arrB = explode('/', $returnPath[0]);

    for ($n = 1, $len = count($arrB); $n < $len; $n++) {  
        if ($arrA[$n] != $arrB[$n]) {  
            break;  
        }   
    }  
    if ($len - $n > 0) {  
        $returnPath = array_merge($returnPath, array_fill(1, $len - $n, '..'));  
    }  
      
    $returnPath = array_merge($returnPath, array_slice($arrA, $n));  
    return implode('/', $returnPath);  
}  
var_dump(getRelativePath($a, $b)); 

//方法二
$a = "/a/b/c/d/index.php";
//echo basename($a,'.php');// 返回路径中文件名部分
//echo dirname($a);
$b = "/a/b/12/34/index2.php";

function getRelativePath($path1,$path2){
    $p1 = dirname($path1);
    $p2 = dirname($path2);

    $arr1 = explode('/',$p1);
    $arr2 = explode('/',$p2);

    $diff_arr= array_diff($arr2,$arr1);    //计算差集 注意这里 是谁相对谁的
    $inter_arr = array_intersect($arr1,$arr2);//计算交集
   
    $leng = count($inter_arr);    //长度是以交集的为准 即求..部分
    for($i=1;$i<$leng;$i++){
        $inter_arr[$i] = '..';   
    }
   
    $merge_arr = array_merge($inter_arr,$diff_arr);
    $fina_arr = implode('/',$merge_arr);
    return $fina_arr;
}
var_dump(getRelativePath($a,$b));
//返回 string '/../../12/34' (length=12)
//如果改成$diff_arr= array_diff($arr1,$arr2); 就返回string '/../../c/d (length=12)

 

 

[!--infotagslink--]

相关文章

  • PHP正则表达式取双引号内的内容

    取双引号内的内容我们如果一个字符串中只有一个可以使用explode来获得,但如果有多个需要使用正则表达式来提取了,具体的例子如下。 写程序的时候总结一点经验,如何只...2016-11-25
  • PHP正则表达式之捕获组与非捕获组

    今天遇到一个正则匹配的问题,忽然翻到有捕获组的概念,手册上也是一略而过,百度时无意翻到C#和Java中有对正则捕获组的特殊用法,搜索关键词有PHP时竟然没有相关内容,自己试了一下,发现在PHP中也是可行的,于是总结一下,分享的同...2015-11-08
  • 一个关于JS正则匹配的踩坑记录

    这篇文章主要给大家介绍了一个关于JS正则匹配的踩坑记录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-04-13
  • php 验证只能输入汉字、英语、数字的正则表达式

    正则表达式是一门非常有用的并且进行模糊判断的一个功能了,我们下面来看通过正则来验证输入汉字、英语、数字,具体如下。 收藏了正则表达式。可以验证只能输入数...2016-11-25
  • java正则表达式判断前端参数修改表中另一个字段的值

    这篇文章主要介绍了java正则表达式判断前端参数修改表中另一个字段的值,需要的朋友可以参考下...2021-05-07
  • 常用的日期时间正则表达式

    常用的日期时间正则表达式 下面收藏了大量的日期时间正则匹配函数,包括分钟,时间与秒都能达到。 正则表达式 (?n:^(?=d)((?<day>31(?!(.0?[2469]|11))|30(?!.0?2)|29(...2016-11-25
  • PHP正则表达式匹配验证提取网址URL实例总结

    网址规则是可寻的,所以我们可以使用正则表达式来提取字符串中的url地址了,下面一起来看看小编整理的几个PHP正则表达式匹配验证提取网址URL实例. 匹配网址 URL 的...2016-11-25
  • 正则表达式中两个反斜杠的匹配规则详解

    这篇文章主要介绍了正则表达式中两个反斜杠的匹配规则,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-07
  • JS中使用正则表达式g模式和非g模式的区别

    这篇文章给大家详细介绍了JS中使用正则表达式g模式和非g模式的区别,非常不错,具有参考借鉴价值,需要的朋友参考下吧...2017-04-03
  • C#正则表达式使用方法示例

    这篇文章主要介绍了C#正则表达式使用方法,大家参考使用...2020-06-25
  • 常用C#正则表达式汇总介绍

    c#正则表达式,用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。...2020-06-25
  • JavaScript利用正则表达式替换字符串中的内容

    本文主要介绍了JavaScript利用正则表达式替换字符串中内容的具体实现方法,并做了简要注释,便于理解。具有一定的参考价值,需要的朋友可以看下...2017-01-09
  • 一文秒懂python正则表达式常用函数

    这篇文章主要介绍了python正则表达式常用函数及使用方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-07
  • Idea使用正则表达式批量替换字符串的方法

    这篇文章给大家介绍了Idea使用正则表达式批量替换字符串的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧...2021-07-21
  • PHP正则表达式之捕获组与非捕获组

    今天遇到一个正则匹配的问题,忽然翻到有捕获组的概念,手册上也是一略而过,百度时无意翻到C#和Java中有对正则捕获组的特殊用法,搜索关键词有PHP时竟然没有相关内容,自己试了一下,发现在PHP中也是可行的,于是总结一下,分享的同...2015-11-08
  • js正则学习小记之匹配字符串字面量

    关于匹配字符串问题,有很多种类型,今天讨论 js 代码里的字符串匹配,因为我想学完之后写个语法高亮练手,所以用js代码当作例子...2021-05-07
  • C# 中使用正则表达式匹配字符的含义

    正则表达式的作用用来描述字符串的特征。本文重点给大家介绍C# 中使用正则表达式匹配字符的含义,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧...2020-06-25
  • Python验证的50个常见正则表达式

    这篇文章主要给大家介绍了关于利用Python验证的50个常见正则表达式的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-11
  • C#编程自学之运算符和表达式

    这篇文章主要介绍了C#运算符和表达式,这是自学C#编程的第五篇,希望对大家的学习有所帮助。...2020-06-25
  • PHP正则表达式过滤html标签属性(DEMO)

    这篇文章主要介绍了PHP正则表达式过滤html标签属性的相关内容,实用性非常,感兴趣的朋友参考下吧...2016-05-06