php中try catch 捕获异常的例子

 更新时间:2016年11月25日 17:21  点击:1462
php中try catch可以帮助我们捕获程序代码的异常了,这样我们可以很好的处理一些不必要的错误了,下面本文章总结了捕获异常的一些用法例子。

pHP中try{}catch{}语句

PHP 5 添加了类似于其它语言的异常处理模块。在 PHP 代码中所产生的异常可被 throw语句抛出并被 catch 语句捕获。(注:一定要先抛才能获取)
需要进行异常处理的代码都必须放入 try 代码块内,以便捕获可能存在的异常。
每一个 try 至少要有一个与之对应的 catch。
使用多个 catch可以捕获不同的类所产生的异常。
当 try 代码块不再抛出异常或者找不到 catch 能匹配所抛出的异常时,PHP 代码就会在跳转到最后一个 catch 的后面继续执行。
当然,PHP允许在 catch 代码块内再次抛出(throw)异常。
当一个异常被抛出时,其后(译者注:指抛出异常时所在的代码块)的代码将不会继续执行,而 PHP 就会尝试查找第一个能与之匹配的 catch。
如果一个异常没有被捕获,而且又没用使用 set_exception_handler() 作相应的处理的话,那么 PHP 将会产生一个严重的错误,并且输出 Uncaught Exception ... (未捕获异常)的提示信息。
先来看一下PHP内置异常类的基本属性和方法。(不包括具体实现)

 代码如下 复制代码

try{

}

catch(){

throw new Exception();

}

catch(){

//这里可以捕获到前面一个块抛出的Exception

}


为了进一步处理异常,我们需要使用PHP中try{}catch{}----包括Try语句和至少一个的catch语句。任何调用 可能抛出异常的方法的代码都应该使用try语句。Catch语句用来处理可能抛出的异常。以下显示了我们处理getCommandObject()抛出的异常的方法:

 代码如下 复制代码
< ?php  
try {  
$mgr = new CommandManager();  
$cmd = $mgr->getCommandObject("realcommand");  
$cmd->execute();  
} catch (Exception $e) {  
print $e->getMessage();  
exit();  
}  
?>  

可以看到,通过结合使用throw关键字和PHP中try{}catch{},我们可以避免错误标记“污染”类方法返回的值。因为“异常”本身就是一种与其它任何对象不同的PHP内建的类型,不会产生混淆。

如果抛出了一个异常,try语句中的脚本将会停止执行,然后马上转向执行catch语句中的脚本。

例子如下:
包含文件错误抛出异常

 代码如下 复制代码

<?php
// 错误的演示
try {
require ('test_try_catch.php');
} catch (Exception $e) {
echo $e->getMessage();
}


// 正确的抛出异常
try {
if (file_exists('test_try_catch.php')) {
require ('test_try_catch.php');
} else {
throw new Exception('file is not exists');
}
} catch (Exception $e) {
echo $e->getMessage();
}

如果异常抛出了却没有被捕捉到,就会产生一个fatal error。

多个catch捕获多个异常

PHP将查询一个匹配的catch代码块。如果有多个catch代码块,传递给每一个catch代码块的对象必须具有不同类型,这样PHP可以找到需要进入哪一个catch代码块。当try代码块不再抛出异常或者找不到catch能匹配所抛出的异常时,PHP代码就会在跳转最后一个catch的后面继续执行。多个异常的捕获的示例如下:

 代码如下 复制代码

<?php
    class MyException extends Exception{
           //重定义构造器使第一个参数message变为必须被指定的属性
           public function __construct($message, $code=0){
               //可以在这里定义一些自己的代码
               //建议同时调用parent::construct()来检查所有的变量是否已被赋值
               parent::__construct($message, $code);
           }
           //重写父类中继承过来的方法,自定义字符串输出的样式
           public function __toString(){
               return __CLASS__.":[".$this->code."]:".$this->message."<br>";
           }
           //为这个异常自定义一个处理方法
           public function customFunction(){
               echo "按自定义的方法处理出现的这个类型的异常";
           }
    }
 
    //创建一个用于测试自定义扩展的异常类MyException
    class TestException{
        public $var;           //用来判断对象是否创建成功的成员属性
        function __construct($value=0){              //通过构造方法的传值决定抛出的异常
            switch($value){                          //对传入的值进行选择性的判断
                case 1:                              //掺入参数1,则抛出自定义的异常对象
                    throw new MyException("传入的值“1”是一个无效的参数",5);break;
                case 2:                              //传入参数2,则抛出PHP内置的异常对象
                    throw new MyException("传入的值“2”不允许作为一个参数",6);break;
                default:                             //传入参数合法,则不抛出异常
                    $this->var=$value;break;          //为对象中的成员属性赋值
            }
        }
    }
 
    //示例1,在没有异常时,程序正常执行,try中的代码全部执行并不会执行任何catch区块
    try{
        $testObj =new TestException();           //使用默认参数创建异常的擦拭类对象
        echo "********<br>";                     //没有抛出异常这条语句就会正常执行
    }catch(MyException $e){                      //捕获用户自定义的异常区块
        echo "捕获自定义的异常:$e<br>";          //按自定义的方式输出异常消息
        $e->customFunction();                    //可以调用自定义的异常处理方法
    }catch(Exception $e){                        //捕获PHP内置的异常处理类的对象
        echo "捕获默认的异常:".$e->getMessage()."<br>";       //输出异常消息
    }
    var_dump($testObj);        //判断对象是否创建成功,如果没有任何异常,则创建成功
 
    //示例2,抛出自定义的异常,并通过自定义的异常处理类捕获这个异常并处理
    try{
        $testObj1 =new TestException(1);         //传1时,抛出自定义异常
        echo "********<br>";                     //这个语句不会被执行
    }catch(MyException $e){                      //这个catch区块中的代码将被执行
        echo "捕获自定义的异常:$e<br>";         
        $e->customFunction();                   
    }catch(Exception $e){                        //这个catch区块不会执行
        echo "捕获默认的异常:".$e->getMessage()."<br>";      
    }
    var_dump($testObj1);        //有异常产生,这个对象没有创建成功
 
    //示例2,抛出自内置的异常,并通过自定义的异常处理类捕获这个异常并处理
    try{
        $testObj2 =new TestException(2);         //传入2时,抛出内置异常
        echo "********<br>";                     //这个语句不会被执行
    }catch(MyException $e){                      //这个catch区块中的代码将被执行
        echo "捕获自定义的异常:$e<br>";         
        $e->customFunction();                   
    }catch(Exception $e){                        //这个catch区块不会执行
        echo "捕获默认的异常:".$e->getMessage()."<br>";      
    }
    var_dump($testObj2);        //有异常产生,这个对象没有创建成功
?>

 在上面的代码中,可以使用两个异常处理类:一个是自定义的异常处理类MyException;另一个则是PHP中内置的异常处理类Exception。分别在try区块中创建测试类TestException的对象,并根据构造方法中提供的不同数字参数,抛出自定义异常类对象、内置的异常类对象和不抛出任何异常的情况,跳转到对应的catch区块中执行。如果没有异常发生,则不会进入任何一个catch块中执行,测试类TestException的对象创建成功

生成唯一不重复的标识我们主要是根据当前的一个时间time然后再转换在md5值,这样几乎是可以保证标签的唯一性了,下面整理了一些关于PHP生成不重复标识符程序代码,希望能各位有帮助。

PHP倒是自带了生成唯一id的函数:uniqid() ,它是基于当前时间微秒数的,用法如下:

 代码如下 复制代码
 echo uniqid(); //13位的字符串
 echo uniqid("php_"); //当然你可以加上前缀
    echo uniqid("php_", TRUE); //如果第二个参数more_entropy为true则生成23位

字符串

但是它生成的标识有可能不是唯一的,所以很多人会:

 代码如下 复制代码

<?php
    //这是第一种简单的方法,当然用sha1()函数也可以。
    echo md5(uniqid());
    //第二种,利用时间戳的方法
    echo md5(time() . mt_rand(1,1000000));
?>

例子。

 代码如下 复制代码

<?
//生成唯一标识符

//sha1()函数, "安全散列算法(SHA1)"

function create_unique() {
    $data = $_SERVER['HTTP_USER_AGENT'] . $_SERVER['REMOTE_ADDR']
     .time() . rand();
    return sha1($data);
    //return md5(time().$data);

    //return $data;

}
?>

例子如下:

<?
$newhash = create_unique();
echo $newhash;
?>

我看到很多人使用 md5() 函数,即使它并不完全意味着这个目的:
 

 代码如下 复制代码

// generate unique string
echo md5(time() . mt_rand(1,1000000));

There is actually a PHP function named uniqid() that is meant to be used for this.

// generate unique string
echo uniqid();
/* prints
4bd67c947233e
*/

// generate another unique string
echo uniqid();
/* prints
4bd67c9472340
*/

你可能会注意到,尽管字符串是唯一的,前几个字符却是类似的,这是因为生成的字符串与服务器时间相关。

但实际上也存在友好的一方面,由于每个新生成的 ID 会按字母顺序排列,这样排序就变得很简单。
为了减少重复的概率,你可以传递一个前缀,或第二个参数来增加:
 

 代码如下 复制代码

// with prefix
echo uniqid('foo_');
/* prints
foo_4bd67d6cd8b8f
*/

// with more entropy
echo uniqid('',true);
/* prints
4bd67d6cd8b926.12135106
*/

// both
echo uniqid('bar_',true);
/* prints
bar_4bd67da367b650.43684647
*/

这个函数将产生比 md5() 更短的字符串,节省一些空间。

php生成全球唯一标识符(GUID)的方法

GUID在空间上和时间上具有唯一性,保证同一时间不同地方产生的数字不同。
世界上的任何两台计算机都不会生成重复的 GUID 值。
需要GUID的时候,可以完全由算法自动生成,不需要一个权威机构来管理。
GUID的长度固定,并且相对而言较短小,非常适合于排序、标识和存储。

 代码如下 复制代码

<?php
//php生成GUID
function getGuid() {
 $charid = strtoupper(md5(uniqid(mt_rand(), true)));
 
 $hyphen = chr(45);// "-"
 $uuid = substr($charid, 0, 8).$hyphen
 .substr($charid, 8, 4).$hyphen
 .substr($charid,12, 4).$hyphen
 .substr($charid,16, 4).$hyphen
 .substr($charid,20,12);

 return $uuid;
}
?>

清除变量中字符中的空格我们有几种方法,因为很多时候我们使用trim是无法删除了,下面整理了几个方法,大家可参考一下。

在PHP里,我们要清除变量当中的空格,先来看下面的这一种方法:

 代码如下 复制代码

$arr = explode(" ",$a);
foreach ($arr as $value)
{
$result.=$value;
}
echo "去除空白后:".$result;

另外还有一种方法如下:

 代码如下 复制代码

$str=str_replace(" ","",$str);
$str=str_replace(chr(32),"",$str)

上面的方法只能处理英文空格的情况.
下面的方法可以处理中文只的空格,不过有个情况是如果页面指定了编码的话会出现乱码

 代码如下 复制代码

$str=str_replace(chr(32),"",$str);
$str=str_replace(chr(161),"",$str);

对于页面为UTF-8是,中文空格提交后变成了chr(227),原应为chr(161)

后面测试了使用trim(), ltrim(), rtrim()函数也可以达到我们要的效果

下面将介绍trim()系统函数的语法和使用:

string trim(string $str [, string $charlist])
trim()函数对输入的字符串进行去除开始位置和结束位置的空格(其实不只是空格)。
如果不设置第二个参数,trim()函数将会去除以下字符:
” ” : 空格;
“\t”: 制表符;
“\n”: 换行符;
“\r”: 回车符;
“\0″: 空字符;
“\x0B”: 垂直制表符;
如果设置第二个参数,trim()函数将只去除第二个参数中的字符集,而不会再去除上面默认的字符集。

 代码如下 复制代码
1 <?php
2 $str = "  hello world   ";
3 $str_trim = trim($str);
4 echo "$str<br />$str_trim";
5 ?>
看一下输出结果:
hello world hello world

怎么是一样的呢?第一行的空格怎么不见了。呵呵。我们在看一下网页的HTML代码吧:
hello world hello world
空格出现了吧!空格不见是因为浏览器显示时自动进行不显示多除的空格。

 代码如下 复制代码
1 <?php
2 $str = "Left hello world Right ";
3 $str_trim = trim($str,"eftL");
4 echo "$str<br />$str_trim";
5 ?>
输出结果为:
Left hello world Right hello world Right

我们将左则和eftL字符相关的都去除了,你可能注意到了,右侧的Right中的”t”也在第二个参数中,为什么没去除。仔细看一下$str最后一个字符,其实是空格。因为空格(最右侧)没有去除(在HTML中能看见),所以”t”(右侧倒数第二)将不会处理。这同时说明函数第二个参数会覆盖trim()的默认字符集。
最后说一下ltrim()和rtrim()函数:
ltrim()函数只处理字符串的左侧;
rtrim()函数只处理字符串的右侧;

通过正则表达式替换,功能更强

php去除字符串首尾空格(包括全角)

 代码如下 复制代码

<?
$str="     脚本之家 www.111cn.net     ";
$str = mb_ereg_replace('^( | )+', '', $str);
$str = mb_ereg_replace('( | )+$', '', $str);
echo mb_ereg_replace('  ', "\n  ", $str);
?>

我们会看到有少的网站在用户登录一次之后下一次会显示你上次登录的时间了,实现这种php登录显示用户上次登录的时间的方法有很多实现技巧,如直接使用数据库记录或直接使用php cookie记录,下面我们来介绍利用cookie记录用户上次登录了。

创建脚本文件 form_login.php

 

 代码如下 复制代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
    <title>用户登录</title>
 <link rel='stylesheet' type='text/css' href='style.css'>
 <style>
  #showTime{
   width:291px;
   border:1px solid #ccc;
   line-height:23px;
   position:absolute;
   left:500px;
   top:48px;
   text-align:center;
  }
 </style>
</head>
<body>
 
 <?php
 if(isset($_COOKIE['login_now'])){
  echo "<div id='showTime'>";
  echo '您上次登录的时间为:'.$_COOKIE['login_now'];
  echo "</div>";
 }
 ?>
</div> 
<div id="login">
<h2>
 <input id="fnquit" type="button" title="退出登录" />
 <a href="#" class="cur" name="Email">Email登录</a>
 </h2>
 <ul>
  <form id="myForm" name="myForm"  method="post" action='login_time.php'>
   <li>
    <input id="login_type" name="login_type" type="hidden"/>
    <tt>
     <label id="log_type" for="email">Email:</label>
    </tt>
    <div>
     <input id="username" name="username" type="text" class="cell" />
    </div>
   </li>
   <li>
    <tt>
     <label for="password">密 码:</label>
    </tt>
    <div>
     <input id="password" name="password" type="password" class="cell" />
    </div>
   </li>
   <li>
    <div>
     <input id="auto_login" name="auto_loginmberme" type="checkbox"/>
     <label for="auto_login">下次自动登录</label>
    </div>
   </li>
   <li>
    <div>
     <input id="sub" type="submit" value=''/><a href="#" target="_blank" >忘记密码?</a>
    </div>
   </li>
</form>
</ul>
</div>
 
</body>
</html>


创建脚本文件 login_time.php

 代码如下 复制代码

<?php
date_default_timezone_set('Asia/Shanghai');//设置时区为东八区
if(!empty($_POST['username'])){
    $name = $_POST['username'];
    $pwd = $_POST['password'];
    if($name = 'admin' && $pwd = 'admin'){
        setCookie('login_now',date('Y-m-d H:i:s'),time()+3600*24);
        echo "<script>alert('登录成功!');location='login_in.php'</script>";
    }else{
        echo "<script>alert('登录失败!');location='login.php'</script>";
    }
}
?>


创建脚本文件 login_in.php

 

 代码如下 复制代码
<?php
    echo "用户登录时间:".$_COOKIE['login_now']."<br>";
    echo "<a href='form_login.php'>注销返回</a>";
?>

补充:如果是数据库会更好一些因为cookie如果用户把它清除cookie了就没有下载一次了哦。

获取给出汉字中拼音的第一个汉字字母我们可以利用汉字的一个编码来进行判断,下面我们来给大家介绍一个例子,非常的简单好用。

先来看看怎样取得单个汉字的拼音首字母,请看下面这个函数,它支持GBK和UTF8编码:

 代码如下 复制代码

function getfirstchar($s0){  
 $fchar = ord($s0{0});
 if($fchar >= ord("A") and $fchar <= ord("z") )return strtoupper($s0{0});
 $s1 = iconv("UTF-8","gb2312", $s0);
 $s2 = iconv("gb2312","UTF-8", $s1);
 if($s2 == $s0){$s = $s1;}else{$s = $s0;}
 $asc = ord($s{0}) * 256 + ord($s{1}) - 65536;
 if($asc >= -20319 and $asc <= -20284) return "A";
 if($asc >= -20283 and $asc <= -19776) return "B";
 if($asc >= -19775 and $asc <= -19219) return "C";
 if($asc >= -19218 and $asc <= -18711) return "D";
 if($asc >= -18710 and $asc <= -18527) return "E";
 if($asc >= -18526 and $asc <= -18240) return "F";
 if($asc >= -18239 and $asc <= -17923) return "G";
 if($asc >= -17922 and $asc <= -17418) return "H";
 if($asc >= -17417 and $asc <= -16475) return "J";
 if($asc >= -16474 and $asc <= -16213) return "K";
 if($asc >= -16212 and $asc <= -15641) return "L";
 if($asc >= -15640 and $asc <= -15166) return "M";
 if($asc >= -15165 and $asc <= -14923) return "N";
 if($asc >= -14922 and $asc <= -14915) return "O";
 if($asc >= -14914 and $asc <= -14631) return "P";
 if($asc >= -14630 and $asc <= -14150) return "Q";
 if($asc >= -14149 and $asc <= -14091) return "R";
 if($asc >= -14090 and $asc <= -13319) return "S";
 if($asc >= -13318 and $asc <= -12839) return "T";
 if($asc >= -12838 and $asc <= -12557) return "W";
 if($asc >= -12556 and $asc <= -11848) return "X";
 if($asc >= -11847 and $asc <= -11056) return "Y";
 if($asc >= -11055 and $asc <= -10247) return "Z";
 return null;
}

 以上函数返回单个汉字的拼音首字母。

当需要处理中文字符串时,只需要重新写一个函数,用来取得一串汉字的拼音首字母。

 代码如下 复制代码

function pinyin1($zh){
 $ret = "";
    $s1 = iconv("UTF-8","gb2312", $zh);
    $s2 = iconv("gb2312","UTF-8", $s1);
    if($s2 == $zh){$zh = $s1;}
 for($i = 0; $i < strlen($zh); $i++){
  $s1 = substr($zh,$i,1);
  $p = ord($s1);
  if($p > 160){
   $s2 = substr($zh,$i++,2);
   $ret .= getfirstchar($s2);
  }else{
   $ret .= $s1;
  }
 }
 return $ret;
}

上面这个函数就是获取汉字拼音首字母的函数,使用示例:

echo pinyin1('这是中文字符串');

结果输出:ZSZWZFC

补充在 getfirstchar函数中我们有两种写法

第一种是我们上面用到的例子

 代码如下 复制代码

function getfirstchar($s0){  
 $fchar = ord($s0{0});
 if($fchar >= ord("A") and $fchar <= ord("z") )return strtoupper($s0{0});

而另一种是我们使用的数字方法了,也比较简单了。

 代码如下 复制代码

function getFirstChar($string) {
$firstCharOrd = ord(strtoupper($string{0}));
if (($firstCharOrd >= 65 && $firstCharOrd <= 91) || ($firstCharOrd >= 48 && $firstCharOrd <= 57))
return strtoupper($string{0});

[!--infotagslink--]

相关文章

  • Linux下PHP安装curl扩展支持https例子

    安装curl扩展支持https是非常的重要现在许多的网站都使用了https了,下面我们来看一篇关于PHP安装curl扩展支持https例子吧。 问题: 线上运行的lamp服务器,默认yu...2016-11-25
  • Python同时处理多个异常的方法

    这篇文章主要介绍了Python同时处理多个异常的方法,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-29
  • php使用floor去掉小数点的例子

    floor会产生小数了如果我们不希望有小数我们是可以去除小数点的了,下面一聚教程小编来为各位介绍php使用floor去掉小数点的例子,希望对各位有帮助。 float floor (...2016-11-25
  • Angular处理未可知异常错误的方法详解

    这篇文章主要给大家介绍了关于Angular如何处理未可知异常错误的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-17
  • java中的空指针异常情况以及解决方案

    这篇文章主要介绍了java中的空指针异常情况以及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-10-02
  • 详解C#编程中异常的创建和引发以及异常处理

    这篇文章主要介绍了C#编程中异常的创建和引发以及异常处理,文中介绍了Catch块和Finally块等基本的异常处理要点,需要的朋友可以参考下...2020-06-25
  • 基于事件冒泡、事件捕获和事件委托详解

    这篇文章主要介绍了事件冒泡、事件捕获和事件委托,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-07-08
  • Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections.Transformer异常

    这篇文章主要介绍了Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-07-10
  • Spring异常捕获且回滚事务解决方案

    这篇文章主要介绍了Spring异常捕获且回滚事务解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-03
  • 通过实例了解Python异常处理机制底层实现

    这篇文章主要介绍了通过实例了解Python异常处理机制底层实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-07-24
  • 纯Css实现下拉菜单的简单例子

    下面我们来看一篇关于纯Css实现下拉菜单的简单例子,希望这篇文章能够给各位同学带来帮助,具体步骤如下. 大家可能会经常用到hover这属性,用hover实现鼠标经过的颜...2017-01-22
  • 详解JavaScript错误捕获

    这篇文章主要介绍了JavaScript错误捕获的相关资料,帮助大家更好的理解和学习使用JavaScript,感兴趣的朋友可以了解下...2021-04-24
  • PHP捕捉异常中断的方法

    相信每位PHP程序员都知道,当PHP程序出现异常情况,如出现致命错误、超时或者不可知的逻辑错误导致程序中断,这个时候就可以用 register_shutdown_function进行异常处理。下面本文给出了详细的示例代码,有需要的朋友们下面来一起看看吧。...2016-10-25
  • php时间日期对比与日期加减例子

    在php中日期对比用得比较多了,还有一个日期加减也用到不少,下面我拿两个例子来给大家介绍在php中日期操作方法吧,希望文章能给你带来帮助 功能需求 文章发布时段操...2016-11-25
  • C#异常处理知识汇总

    这篇文章主要介绍了C#异常处理的知识,文中讲解非常详细,配合代码帮助大家更好的理解,感兴趣的朋友可以参考下...2020-06-25
  • php更新修改excel中的内容例子

    本例子不是读取Excel或生成新的Excel,而是读取现有的Excel文件,然后修改Excel中的数据,就像修改mysql中数据一样的哦。 代码如下 ...2016-11-25
  • C# Winform实现捕获窗体最小化、最大化、关闭按钮事件的方法

    这篇文章主要介绍了C# Winform实现捕获窗体最小化、最大化、关闭按钮事件的方法,可通过重写WndProc来实现,需要的朋友可以参考下...2020-06-25
  • Oracle用户自定义异常实现过程解析

    这篇文章主要介绍了Oracle用户自定义异常实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-09-29
  • php正则获取文章内容中图片地址例子

    正则提取图片中的地址我们介绍过很多的相关文章了,下面再来给各位介绍一个可以提取内容中第一张图片的例子,希望对各位有帮助。 代码如下 复制代码 ...2016-11-25
  • php获取QQ头像并显示的例子

    最近看到博客留言的头像有点别扭,因为游客的头像都是同一个头像,看着不是很舒服。虽然现在绝大多数的主题集成了Gavatar头像功能,先不说gavatar被墙的问题,我自己现在都没...2016-11-25