首页 > 编程技术 > php

php正则链接-取得内容所有链接

发布时间:2016-11-25 16:50

下面提供二款关于php正则链接方法,他们可以-取得内容所有链接并且保存到一个数组,当然也可以把链接全部替换哦。

方法一

 代码如下 复制代码
function get_all_url($code){
        preg_match_all('/<as+href=["|']?([^>"' ]+)["|']?s*[^>]*>([^>]+)</a>/i',$code,$arr);
        return array('name'=>$arr[2],'url'=>$arr[1]);
}


方法二

 代码如下 复制代码

$site=substr($url,0,strpos($url,"/",8));//站点

$base=substr($url,0,strrpos($url,"/")+1);//文件所在目录

$fp = fopen($url, "r" );//打开url

 

while(!feof($fp))$contents.=fread($fp,1024);//

$pattern="|href=['"]?([^ '"]+)['" ]|u";

 

preg_match_all($pattern,$contents, $regarr, preg_set_order);//匹配所有href=

for($i=0;$i<count($regarr);$i++){//遍历所有匹配

if(!eregi("://",$regarr[$i][1]))//是否是相对路径,即是否还有://

if(substr($regarr[$i][1],0,1)=="/")//是否是站点的根目录

   echo "link".($i+1).":".$site.$regarr[$i][1]."<br/>";//根目录

else

   echo "link".($i+1).":".$base.$regarr[$i][1]."<br/>";//当前目录

else

echo "link".($i+1).":".$regarr[$i][1]."<br/>";//相对路径

}

fclose($fp);

 

关于php二维数组定义我就不说多了,很简单的,下面几款实例都是讲关于php 二维数组排序与遍历哦,我们每个实例都是以不同的方法介绍。
 代码如下 复制代码

function multi_array_sort($multi_array,$sort_key,$sort=sort_asc){  
    if(is_array($multi_array)){  
        foreach ($multi_array as $row_array){  
            if(is_array($row_array)){  
                $key_array[] = $row_array[$sort_key];  
            }else{  
                return -1;  
            }  
        }  
    }else{  
        return -1;  
    }  
    array_multisort($key_array,$sort,$multi_array);  
    return $multi_array;  


array(
            array('id'=>1,'data'=>'a'),
            array('id'=>3,'data'=>'c'),
            array('id'=>2,'data'=>'b')
        );

php本身是有一个多维数组排序的函数的。

 代码如下 复制代码

bool array_multisort ( array $ar1 [, mixed $arg [, mixed $... [, array $... ]]] )


方法二

 

 代码如下 复制代码

<?php
//以时间inputdate为key值进行二维数组降序排列
function array_sort($arr,$keys,$type){
$keysvalue=array();
$i = 0;
foreach($arr as $key=>$val) {
$val[$keys] = str_replace("-","",$val[$keys]);
$val[$keys] = str_replace(" ","",$val[$keys]);
$val[$keys] = str_replace(":","",$val[$keys]);
$keysvalue[] =$val[$keys];

}
asort($keysvalue); //key值排序
reset($keysvalue); //指针重新指向数组第一个
foreach($keysvalue as $key=>$vals) {
$keysort[] = $key;
}
$new_array = array();
if($type != "asc"){
for($ii=count($keysort)-1; $ii>=0; $ii--) {
$new_array[] = $arr[$keysort[$ii]];
}
}else{
for($ii=0; $ii<count($keysort); $ii++){
$new_array[] = $arr[$keysort[$ii]];
}
}
return $new_array;
}
?>

方法三

 代码如下 复制代码

<?php
    $a = array(
       0=>array("id"=>1,"name"=>"小何","addr"=>"0:1"),
       1=>array("id"=>2,"name"=>"小刚","addr"=>"0:1:2"),
       2=>array("id"=>3,"name"=>"小军","addr"=>"0:1:3"),
       3=>array("id"=>4,"name"=>"公司","addr"=>"0:4"),
    );
function sort_by($array, $keyname = null, $sortby){
    $myarray = $inarray = array();
    foreach($array as $i=>$befree){
      $myarray[$i] = $array[$i][$keyname];
    }
    switch($sortby){
       case 'asc':
       asort($myarray);
       break;
       case 'arsort':
       arsort($myarray);
       break;
       case 'natcasesor':
       natcasesor($myarray);
       break;
    }
    foreach($myarray as $key=>$befree){
        $inarray[$key] = $array[$key];
        }
          return $inarray;
}
print_r(sort_by($a,"addr","arsort"));


print_r($a[2]["id"]);
?>

文章为你提供二款php 过滤所有HTML标记哦,他可以过滤所有的html标签啊。

//去除html标记

 代码如下 复制代码
function text2html($txt){
        $txt = str_replace("  "," ",$txt);
        $txt = str_replace("<","&lt;",$txt);
        $txt = str_replace(">","&gt;",$txt);
        $txt = preg_replace("/[ ]{1,}/isu","<br/> ",$txt);
        return $txt;
}

//清除html标记

 代码如下 复制代码
function clearhtml($str){
        $str = str_replace('<','&lt;',$str);
        $str = str_replace('>','&gt;',$str);
        return $str;
}
php有现成的函数getimagesize用于获取图像的尺寸,具体的函数使用方法以及代码示例

<?php教程/* 1.jpg为你想获得其尺寸的图片 */
$arr = getimagesize("1.jpg");
/**
 * 这里$arr为一个数组类型
 * $arr[0] 为图像的宽度
 * $arr[1] 为图像的高度
 * $arr[2] 为图像的格式,包括jpg、gif和png等
 * $arr[3] 为图像的宽度和高度,内容为 width="xxx" height="yyy"
 */
/* 以下两行代码输出的内容都是一样的 */
echo "<img" width=100% src="1.jpg" $arr[3] alt="" />";
echo "<img" width=100% src="1.jpg" width="$arr[0]" height="$arr[1]" alt="" />";
?>

<img" width=100% src="1.jpg" width="xxx" height="yyy" alt="" />
<img" width=100% src="1.jpg" width="xxx" height="yyy" alt="" />

查看php在线手册

http://www.111cn.net/w3school/php/index.htm

提供一款简单实例的php判断大小写字母函数哦,它可以查找出一个字符串有多少大写字母有多少小写字母哦,是一个很方便的常用函数。
 代码如下 复制代码
  function checkcase($str){
              if(preg_match('/^[a-z]+$/', $str)){
                     echo '小写字母';
              }elseif(preg_match('/^[a-z]+$/', $str)){
                     echo '大写字母';
              }
       }

方法二

 代码如下 复制代码
<?php
$str = 'a';
function checkcase1($str){
    $str = ord($str);
    if($str>64&&$str<91){
        echo '大写字母';
        return;
    }
    if($str>96&&$str<123){
        echo '小写字母';
        return;
    }
    echo '不是字母';
}
function checkcase2($str){
    if(strtoupper($str)===$str){
        echo '大写字母';
    }else{
        echo '小写字母';
    }
}
echo checkcase1($str);
echo checkcase2($str);
?>
标签:[!--infotagslink--]

您可能感兴趣的文章: