`
koothon
  • 浏览: 7071 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

php 十段很有意义的代码--推荐

阅读更多
当使用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;   
[b]
[/b][i][/i][u][/u]
分享到:
评论

相关推荐

    十天学会php手册

    ### 十天学会PHP手册知识点总结 #### 第一天:PHP基础语法概览 **1. 嵌入方法** - PHP代码嵌入HTML文档的方式类似于ASP中的`&lt;% %&gt;`,但PHP使用`&lt;?php ?&gt;`或简短的`&lt;? ?&gt;`。结束符号为`?&gt;`。用户还可以自定义起始...

    ecshop代码解读

    这一段代码通过 SQL 查询获取分类推荐信息,并将其整理成数组结构,最终分配给模板变量 `cat_rec`。这里利用了内连接(INNER JOIN)的方式,确保推荐的分类与实际存在的分类相对应。 #### 八、动态内容处理 ```php...

    PHP的特殊资料

    - 良好的注释习惯有助于提高代码的可读性和维护性。 #### 三、显示信息 **知识点1:使用`echo`输出信息** - 常见的输出信息方式是使用`echo`命令。 - 示例:`echo "Hello, World!";` - `echo`命令可以输出字符串、...

    php 正则表达式简单介绍

    这段代码检查输入的电子邮件地址是否符合基本的格式要求。 2. **字符串替换**: ```php $text = "Hello World!"; $text = preg_replace('/World/', 'Universe', $text); echo $text; // 输出: Hello Universe!...

    PHP source

    理解这些交互方式对优化PHP应用程序性能和安全性有重要意义。 八、PHP性能优化 通过配置PHP.ini、使用Opcache、优化代码结构、减少数据库查询等方式,可以显著提高PHP应用的运行效率。理解PHP的性能瓶颈和优化策略...

    PHP 中的 Unicode 签名.doc

    在探讨《PHP中的Unicode签名(BOM)问题》这一主题时,我们首先需要理解几个关键概念:Unicode、UTF-8以及BOM(Byte Order ...此外,了解并掌握这些技术细节,对于提高网站的用户体验和维护代码的健壮性都具有重要意义。

    将ip解析为具体的地址(省市)

    IPv4由32位二进制组成,通常被分为4个八位段,每个段用十进制表示,之间用点分隔,如192.168.1.1。IPv6则更复杂,由128位二进制构成,分为8组,每组4个十六进制数字,如2001:0db8:85a3:0000:0000:8a2e:0370:7334。 ...

    SEO复习手册.docx

    - **见效慢**:相对于SEM来说,SEO需要一段时间才能看到效果。 - **成本低**:主要投资在于时间和人力。 - **流量更好**:能够带来高质量的自然流量。 - **一次性付费**:主要是在网站建设初期进行一次性投资。 ...

    基于web的网上汽车销售系统的开发-开题报告.docx

    #### 一、项目背景与意义 随着互联网技术的迅速发展,电子商务已成为现代商业活动中不可或缺的一部分。基于Web的网上汽车销售系统作为一种新型的商业模式,不仅可以极大地拓宽销售渠道,还能提升用户体验,降低运营...

    C语言变量类型详解(史上最全)

    通过本文对C语言中各种数据类型的详细介绍,我们可以更好地理解不同类型的特点及其应用场景,这对于提高编程效率和代码质量具有重要意义。在实际开发过程中,合理选择合适的数据类型不仅可以提升程序性能,还能减少...

    基于Joomla Platform内容管理框架的网站毕业设计.docx

    #### 一、项目背景及意义 本项目基于Joomla Platform内容管理框架构建了一个学生论文管理系统。该项目的主要目的是解决当前大学生在撰写毕业论文过程中遇到的问题,如缺乏有效的参考资料、无法快速获取同领域的高...

    PHP MVC模式在网站架构中的实现分析

    这段代码虽然使用了过程式和面向对象的混合方式,但对小型网站来说,通常是最简单和高效的方式。当然,这代码还有优化空间。 从以上内容中,我们可以提取出以下关键知识点: 1. MVC模式的三大组成部分:模型...

    毕业论文php137在线图书订购系统thinkphp.doc

    一、背景与意义 在信息化社会中,图书作为知识的重要载体,其销售方式也在不断变革。传统的实体书店购书方式受到时间和空间的限制,而在线图书订购系统则打破了这些限制,用户可以随时随地浏览各类图书,进行在线...

    快手2019秋招笔试试题-工程A试卷.docx

    7. 编译过程:源代码编译的第一个阶段是词法分析,即将源代码分解成一个个有意义的标记,为后续的语法分析做准备。所以c正确。 8. 链表操作:在链表中插入结点X的操作,应先将指针q指向的结点A的next指针更新为s,...

    Web安全面试题及答案

    4. **C段网站**: 收集同一C类地址段内的其他网站,有助于发现潜在的关联站点或服务器。 5. **服务器系统版本、容器版本、程序版本、数据库类型**: 这些信息对于发现已知漏洞至关重要。 6. **二级域名**: 收集所有...

    ThinkPHP5快速入门手册.pdf

    ThinkPHP是一个采用MVC模式和面向对象思想设计的轻量级PHP开发框架,它遵循Apache2开源协议,力求在保证性能优异、代码简洁的同时,提供一个易用的开发体验。ThinkPHP5.0作为该框架的一个重大更新版本,它不仅提供了...

    2021-2022计算机二级等级考试试题及答案No.19560.docx

    12. 数据概念:数据不仅仅是数字,它可以是任何描述事物的符号记录,与它的语义结合才有意义。 13. 数据库完整性:数据库完整性规则确保数据的一致性,防止授权用户的操作导致数据丢失或损坏。 14. 计算机字长:...

Global site tag (gtag.js) - Google Analytics