聊城万拓网络科技-专业聊城网站建设、聊城网站制作、聊城网站优化、聊城做网站的品牌网站建设专家!

    您当前的位置是:首页 - 新闻动态 - 网站建设 » 超实用的PHP代码经典片段

    超实用的PHP代码经典片段
     发布时间:2013-12-13  点击次数: 次   作者:万拓网络  来源:lcbaituo.com  Tags:

    此前,研发频道曾发布《直接拿来用,10个PHP代码片段》,得到了网友们的一致好评。本文,笔者将继续分享九个超级有用的PHP代码片段。当你在开发网站、应用或者博客时,利用这些代码能为你节省大量的时间。

     

     

    一、查看邮件是否已被阅读

     

    当你在发送邮件时,你或许很想知道该邮件是否被对方已阅读。这里有段非常有趣的代码片段能够显示对方IP地址记录阅读的实际日期和时间。 

    view source
    print?
    01.<?
    02.error_reporting(0);
    03.Header("Content-Type: image/jpeg");
    04.  
    05.//Get IP
    06.if (!emptyempty($_SERVER['HTTP_CLIENT_IP']))
    07.{
    08.  $ip=$_SERVER['HTTP_CLIENT_IP'];
    09.}
    10.elseif (!emptyempty($_SERVER['HTTP_X_FORWARDED_FOR']))
    11.{
    12.  $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
    13.}
    14.else
    15.{
    16.  $ip=$_SERVER['REMOTE_ADDR'];
    17.}
    18.  
    19.//Time
    20.$actual_time = time();
    21.$actual_day = date('Y.m.d', $actual_time);
    22.$actual_day_chart = date('d/m/y', $actual_time);
    23.$actual_hour = date('H:i:s', $actual_time);
    24.  
    25.//GET Browser
    26.$browser = $_SERVER['HTTP_USER_AGENT'];
    27.      
    28.//LOG
    29.$myFile = "log.txt";
    30.$fh = fopen($myFile, 'a+');
    31.$stringData = $actual_day . ' ' . $actual_hour . ' ' . $ip . ' ' . $browser . ' ' . "\r\n";
    32.fwrite($fh, $stringData);
    33.fclose($fh);
    34.  
    35.//Generate Image (Es. dimesion is 1x1)
    36.$newimage = ImageCreate(1,1);
    37.$grigio = ImageColorAllocate($newimage,255,255,255);
    38.ImageJPEG($newimage);
    39.ImageDestroy($newimage);
    40.      
    41.?>
    源码

     

    二、从网页中提取关键字

     

    一段伟大的代码片段能够轻松的从网页中提取关键字。

    view source
    print?
    01.$meta = get_meta_tags('http://www.emoticode.net/');
    02.$keywords = $meta['keywords'];
    03.// Split keywords
    04.$keywords = explode(',', $keywords );
    05.// Trim them
    06.$keywords = array_map( 'trim', $keywords );
    07.// Remove empty values
    08.$keywords = array_filter( $keywords );
    09.  
    10.print_r( $keywords );
    源码

     

    三、查找页面上的所有链接

    使用DOM,你可以轻松从任何页面上抓取链接,代码示例如下: 

     

    view source
    print?
    01.$html = file_get_contents('http://www.php100.com');
    02.  
    03.$dom = new DOMDocument();
    04.@$dom->loadHTML($html);
    05.  
    06.// grab all the on the page
    07.$xpath = new DOMXPath($dom);
    08.$hrefs = $xpath->evaluate("/html/body//a");
    09.  
    10.for ($i = 0; $i < $hrefs->length; $i++) {
    11.       $href = $hrefs->item($i);
    12.       $url = $href->getAttribute('href');
    13.       echo $url.'<br />';
    14.}
    源码

     

    四、自动转换URL,跳转至超链接

    在WordPress中,如果你想自动转换URL,跳转至超链接页面,你可以利用内置的函数make_clickable()执行此操作。如果你想基于WordPress之外操作该程序,那么你可以参考wp-includes/formatting.php源代码。 

     

    view source
    print?
    01.function _make_url_clickable_cb($matches) {
    02.    $ret = '';
    03.    $url = $matches[2];
    04.   
    05.    if ( emptyempty($url) )
    06.        return $matches[0];
    07.    // removed trailing [.,;:] from URL
    08.    if ( in_array(substr($url, -1), array('.', ',', ';', ':')) === true ) {
    09.        $ret = substr($url, -1);
    10.        $url = substr($url, 0, strlen($url)-1);
    11.    }
    12.    return $matches[1] . "<a href=\"$url\" rel=\"nofollow\">$url</a>" . $ret;
    13.}
    14.   
    15.function _make_web_ftp_clickable_cb($matches) {
    16.    $ret = '';
    17.    $dest = $matches[2];
    18.    $dest = 'http://' . $dest;
    19.   
    20.    if ( emptyempty($dest) )
    21.        return $matches[0];
    22.    // removed trailing [,;:] from URL
    23.    if ( in_array(substr($dest, -1), array('.', ',', ';', ':')) === true ) {
    24.        $ret = substr($dest, -1);
    25.        $dest = substr($dest, 0, strlen($dest)-1);
    26.    }
    27.    return $matches[1] . "<a href=\"$dest\" rel=\"nofollow\">$dest</a>" . $ret;
    28.}
    29.   
    30.function _make_email_clickable_cb($matches) {
    31.    $email = $matches[2] . '@' . $matches[3];
    32.    return $matches[1] . "<a href=\"mailto:$email\">$email</a>";
    33.}
    34.   
    35.function make_clickable($ret) {
    36.    $ret = ' ' . $ret;
    37.    // in testing, using arrays here was found to be faster
    38.    $ret = preg_replace_callback('#([\s>])([\w]+?://[\w\\x80-\\xff\#$%&~/.\-;:=,?@\[\]+]*)#is', '_make_url_clickable_cb', $ret);
    39.    $ret = preg_replace_callback('#([\s>])((www|ftp)\.[\w\\x80-\\xff\#$%&~/.\-;:=,?@\[\]+]*)#is', '_make_web_ftp_clickable_cb', $ret);
    40.    $ret = preg_replace_callback('#([\s>])([.0-9a-z_+-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,})#i', '_make_email_clickable_cb', $ret);
    41.   
    42.    // this one is not in an array because we need it to run last, for cleanup of accidental links within links
    43.    $ret = preg_replace("#(<a( [^>]+?>|>))<a [^>]+?>([^>]+?)</a></a>#i", "$1$3</a>", $ret);
    44.    $ret = trim($ret);
    45.    return $ret;
    46.}
    源码

     

    五、创建数据URL

    数据URL可以直接嵌入到HTML/CSS/JS中,以节省大量的 HTTP请求。 下面的这段代码可利用$file轻松创建数据URL。 

     

    view source
    print?
    1.function data_uri($file, $mime) {
    2.  $contents=file_get_contents($file);
    3.  
    分享到:
    上一篇:C#常见错误解决办法锦集
    下一篇:微软.Net平台活力正在慢慢消褪
     

    本站业务:聊城网站建设-聊城网站制作-聊城做网站