设为首页 收藏本站
查看: 682|回复: 0

[经验分享] php 十段很有意义的代码--推荐

[复制链接]

尚未签到

发表于 2017-3-31 12:11:28 | 显示全部楼层 |阅读模式
当使用PHP进行开发的时候,如果你自己收藏 了一些非常有用的方法或者代码片段,那么将会给你的开发工作带来极大的便利。今天我们将介绍10个超级好用的PHP代码片段,希望大家能够喜欢!
1.  使用textmagic API发送消息

可能有的时候,你需要发送一些短信给你的客户,那么你绝对应该看看textMagic。它提供了非常简单的API来实现这个功能。但是不是免费的。

PHP代码

    // Include the TextMagic PHP lib  
    require('textmagic-sms-api-php/TextMagicAPI.php');  
     
    // Set the username and password information  
    $username = 'myusername';  
    $password = 'mypassword';  
     
    // Create a new instance of TM  
    $router = new TextMagicAPI(array(  
        'username' => $username,  
        'password' => $password  
    ));  
     
    // Send a text message to '999-123-4567'  
    $result = $router->send('Wake up!', array(9991234567), true);  
     
    // result:  Result is: Array ( [messages] => Array ( [19896128] => 9991234567 ) [sent_text] => Wake up! [parts_count] => 1 )

2.  通过IP判断来源

这是一个非常实用的代码片段,可以帮助你通过IP来判断访客来源。下面的方法通过接收一个参数,然后返回IP所在地点。如果没有找到,则返回UNKNOWN。

PHP代码

    function detect_city($ip) {  
     
            $default = 'UNKNOWN';  
     
            if (!is_string($ip) || strlen($ip) < 1 || $ip == '127.0.0.1' || $ip == 'localhost')  
                $ip = '8.8.8.8';  
     
            $curlopt_useragent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)';  
     
            $url = 'http://ipinfodb.com/ip_locator.php?ip=' . urlencode($ip);  
            $ch = curl_init();  
     
            $curl_opt = array(  
                CURLOPT_FOLLOWLOCATION  => 1,  
                CURLOPT_HEADER      => 0,  
                CURLOPT_RETURNTRANSFER  => 1,  
                CURLOPT_USERAGENT   => $curlopt_useragent,  
                CURLOPT_URL       => $url,  
                CURLOPT_TIMEOUT         => 1,  
                CURLOPT_REFERER         => 'http://' . $_SERVER['HTTP_HOST'],  
            );  
     
            curl_setopt_array($ch, $curl_opt);  
     
            $content = curl_exec($ch);  
     
            if (!is_null($curl_info)) {  
                $curl_info = curl_getinfo($ch);  
            }  
     
            curl_close($ch);  
     
            if ( preg_match('{<li>City : ([^<]*)</li>}i', $content, $regs) )  {  
                $city = $regs[1];  
            }  
            if ( preg_match('{<li>State/Province : ([^<]*)</li>}i', $content, $regs) )  {  
                $state = $regs[1];  
            }  
     
            if( $city!='' && $state!='' ){  
              $location = $city . ', ' . $state;  
              return $location;  
            }else{  
              return $default;  
            }  
    }

3.  显示任何网页的源代码

是不是想显示带有行号的任何网页的源代码?这里有个简单的代码片段,你只需要修改第二行的url即可

PHP代码

    <?php // display source code   
    $lines = file('http://google.com/');   
    foreach ($lines as $line_num => $line) {   
        // loop thru each line and prepend line numbers   
        echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br>\n";   
    }   

4.  判断服务器是否是HTTPS连接

需要判断代码运行环境是否是HTTPS服务器?下面的代码可以帮助你实现,非常简单!

PHP代码

    if ($_SERVER['HTTPS'] != "on") {   
        echo "This is not HTTPS";   
    }else{   
        echo "This is HTTPS";   
    }   

5. 在文本中显示Facebook 粉丝数

想看看你在facebook有多少粉丝么?下面代码可以帮助你实现。

PHP代码

    function fb_fan_count($facebook_name){   
        // Example: https://graph.facebook.com/digimantra   
        $data = json_decode(file_get_contents("https://graph.facebook.com/".$facebook_name));   
        echo $data->likes;   
    }   
      
     

6. 判断一张图片的主色调

下面这个代码非常实用,能帮助你判断一张图片中的主色调,你可以分析任何图片。

PHP代码

    $i = imagecreatefromjpeg("image.jpg");   
        
    for ($x=0;$x<imagesx($i);$x++) {   
        for ($y=0;$y<imagesy($i);$y++) {   
            $rgb = imagecolorat($i,$x,$y);   
            $r   = ($rgb >> 16) & 0xFF;   
            $g   = ($rgb >>  & 0xFF;   
            $b   = $rgb & 0xFF;   
        
            $rTotal += $r;   
            $gTotal += $g;   
            $bTotal += $b;   
            $total++;   
        }   
    }   
        
    $rAverage = round($rTotal/$total);   
    $gAverage = round($gTotal/$total);   
    $bAverage = round($bTotal/$total);   

7.  了解你的内存使用情况

为了优化你的脚本,你需要了解服务器上的RAM使用情况。这个代码片段将帮助你了解内存使用,并且打印初始、最终以及峰值使用情况。

PHP代码

    echo "Initial: ".memory_get_usage()." bytes \n";   
    /* prints   
    Initial: 361400 bytes   
    */   
        
    // let's use up some memory   
    for ($i = 0; $i < 100000; $i++) {   
        $array []= md5($i);   
    }   
        
    // let's remove half of the array   
    for ($i = 0; $i < 100000; $i++) {   
        unset($array[$i]);   
    }   
        
    echo "Final: ".memory_get_usage()." bytes \n";   
    /* prints   
    Final: 885912 bytes   
    */   
        
    echo "Peak: ".memory_get_peak_usage()." bytes \n";   
    /* prints   
    Peak: 13687072 bytes   
    */   
     
     

8.  使用gzcompress()压缩数据

当使用很长的string时,可以通过gzcompress()方法,将strings压缩。解压缩使用gzuncompress()即可。代码如下。

PHP代码

    $string =   
    "Lorem ipsum dolor sit amet, consectetur   
    adipiscing elit. Nunc ut elit id mi ultricies   
    adipiscing. Nulla facilisi. Praesent pulvinar,   
    sapien vel feugiat vestibulum, nulla dui pretium orci,   
    non ultricies elit lacus quis ante. Lorem ipsum dolor   
    sit amet, consectetur adipiscing elit. Aliquam   
    pretium ullamcorper urna quis iaculis. Etiam ac massa   
    sed turpis tempor luctus. Curabitur sed nibh eu elit   
    mollis congue. Praesent ipsum diam, consectetur vitae   
    ornare a, aliquam a nunc. In id magna pellentesque   
    tellus posuere adipiscing. Sed non mi metus, at lacinia   
    augue. Sed magna nisi, ornare in mollis in, mollis   
    sed nunc. Etiam at justo in leo congue mollis.   
    Nullam in neque eget metus hendrerit scelerisque   
    eu non enim. Ut malesuada lacus eu nulla bibendum   
    id euismod urna sodales. ";   
        
    $compressed = gzcompress($string);   
        
    echo "Original size: ". strlen($string)."\n";   
    /* prints   
    Original size: 800   
    */   
        
    echo "Compressed size: ". strlen($compressed)."\n";   
    /* prints   
    Compressed size: 418   
    */   
        
    // getting it back   
    $original = gzuncompress($compressed);   

9.  使用PHP执行Whois查询

如果你需要得到指定域名的whois信息,为什么不使用PHP呢?下面的代码可以帮助大家。

PHP代码

    function whois_query($domain) {   
        
        // fix the domain name:   
        $domain = strtolower(trim($domain));   
        $domain = preg_replace('/^http:\/\//i', '', $domain);   
        $domain = preg_replace('/^www\./i', '', $domain);   
        $domain = explode('/', $domain);   
        $domain = trim($domain[0]);   
        
        // split the TLD from domain name   
        $_domain = explode('.', $domain);   
        $lst = count($_domain)-1;   
        $ext = $_domain[$lst];   
        
        // You find resources and lists   
        // like these on wikipedia:   
        //   
        // http://de.wikipedia.org/wiki/Whois   
        //   
        $servers = array(   
            "biz" => "whois.neulevel.biz",   
            "com" => "whois.internic.net",   
            "us" => "whois.nic.us",   
            "coop" => "whois.nic.coop",   
            "info" => "whois.nic.info",   
            "name" => "whois.nic.name",   
            "net" => "whois.internic.net",   
            "gov" => "whois.nic.gov",   
            "edu" => "whois.internic.net",   
            "mil" => "rs.internic.net",   
            "int" => "whois.iana.org",   
            "ac" => "whois.nic.ac",   
            "ae" => "whois.uaenic.ae",   
            "at" => "whois.ripe.net",   
            "au" => "whois.aunic.net",   
            "be" => "whois.dns.be",   
            "bg" => "whois.ripe.net",   
            "br" => "whois.registro.br",   
            "bz" => "whois.belizenic.bz",   
            "ca" => "whois.cira.ca",   
            "cc" => "whois.nic.cc",   
            "ch" => "whois.nic.ch",   
            "cl" => "whois.nic.cl",   
            "cn" => "whois.cnnic.net.cn",   
            "cz" => "whois.nic.cz",   
            "de" => "whois.nic.de",   
            "fr" => "whois.nic.fr",   
            "hu" => "whois.nic.hu",   
            "ie" => "whois.domainregistry.ie",   
            "il" => "whois.isoc.org.il",   
            "in" => "whois.ncst.ernet.in",   
            "ir" => "whois.nic.ir",   
            "mc" => "whois.ripe.net",   
            "to" => "whois.tonic.to",   
            "tv" => "whois.tv",   
            "ru" => "whois.ripn.net",   
            "org" => "whois.pir.org",   
            "aero" => "whois.information.aero",   
            "nl" => "whois.domain-registry.nl"   
        );   
        
        if (!isset($servers[$ext])){   
            die('Error: No matching nic server found!');   
        }   
        
        $nic_server = $servers[$ext];   
        
        $output = '';   
        
        // connect to whois server:   
        if ($conn = fsockopen ($nic_server, 43)) {   
            fputs($conn, $domain."\r\n");   
            while(!feof($conn)) {   
                $output .= fgets($conn,128);   
            }   
            fclose($conn);   
        }   
        else { die('Error: Could not connect to ' . $nic_server . '!'); }   
        
        return $output;   
    }   
     
     

10.  不显示PHP错误而发送电子邮件取代之

如果你不想在页面中显示PHP错误,也可以通过email来获取错误信息。下面的代码可以帮助你实现。

PHP代码

    <?php   
        
    // Our custom error handler   
    function nettuts_error_handler($number, $message, $file, $line, $vars){   
        $email = "   
            <p>An error ($number) occurred on line   
            <strong>$line</strong> and in the <strong>file: $file.</strong>   
            <p> $message </p>";   
        
        $email .= "<pre>" . print_r($vars, 1) . "</pre>";   
        
        $headers = 'Content-type: text/html; charset=iso-8859-1' . "\r\n";   
        
        // Email the error to someone...   
        error_log($email, 1, 'you@youremail.com', $headers);   
        
        // Make sure that you decide how to respond to errors (on the user's side)   
        // Either echo an error message, or kill the entire project. Up to you...   
        // The code below ensures that we only "die" if the error was more than   
        // just a NOTICE.   
        if ( ($number !== E_NOTICE) && ($number < 2048) ) {   
            die("There was an error. Please try again later.");   
        }   
    }   
        
    // We should use our custom function to handle errors.   
    set_error_handler('nettuts_error_handler');   
        
    // Trigger an error... (var doesn't exist)   
    echo $somevarthatdoesnotexist;   
DSC0000.gif

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-358177-1-1.html 上篇帖子: PHP开发大型Web应用浅析 下篇帖子: Win7+IIS7下用FastCGI模式配置PHP环境
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表