首页 > 编程技术 > php

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

发布时间:2016-11-25 15:55

//方法一

 代码如下 复制代码
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教程"" width=100% src="count.php?aid=5&t=show"></script> 显示浏览次数
<script language="javascript"" width=100% 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--]

您可能感兴趣的文章: