首頁 後端開發 php教程 非常实用的PHP代码片段推荐_PHP

非常实用的PHP代码片段推荐_PHP

Jun 01, 2016 pm 12:11 PM
php程式碼

当使用PHP进行开发的时候,如果你自己收 藏 了一些非常有用的方法或者代码片段,那么将会给你的开发工作带来极大的便利。今天我们将介绍10个超级好用的PHP代码片段,希望大家能够喜欢!

1.  使用textmagic API发送消息

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

// 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。

function detect_city($ip) {

        $default = 'UNKNOWN';

        if (!is_string($ip) || strlen($ip) < 1 || $ip == &#39;127.0.0.1&#39; || $ip == &#39;localhost&#39;)
            $ip = &#39;8.8.8.8&#39;;

        $curlopt_useragent = &#39;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)&#39;;

        $url = &#39;http://ipinfodb.com/ip_locator.php?ip=&#39; . 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         => &#39;http://&#39; . $_SERVER[&#39;HTTP_HOST&#39;],
        );

        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(&#39;{<li>City : ([^<]*)</li>}i&#39;, $content, $regs) )  {
            $city = $regs[1];
        }
        if ( preg_match(&#39;{<li>State/Province : ([^<]*)</li>}i&#39;, $content, $regs) )  {
            $state = $regs[1];
        }

        if( $city!=&#39;&#39; && $state!=&#39;&#39; ){
          $location = $city . &#39;, &#39; . $state;
          return $location;
        }else{
          return $default;
        }

    }
登入後複製

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

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

<?php // display source code
$lines = file(&#39;http://google.com/&#39;);
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服务器?下面的代码可以帮助你实现,非常简单!

if ($_SERVER[&#39;HTTPS&#39;] != "on") {
	echo "This is not HTTPS";
}else{
	echo "This is HTTPS";
}
登入後複製

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

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

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. 判断一张图片的主色调

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

$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使用情况。这个代码片段将帮助你了解内存使用,并且打印初始、最终以及峰值使用情况。

echo "Initial: ".memory_get_usage()." bytes \n";
/* prints
Initial: 361400 bytes
*/

// let&#39;s use up some memory
for ($i = 0; $i < 100000; $i++) {
	$array []= md5($i);
}

// let&#39;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()即可。代码如下。

$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呢?下面的代码可以帮助大家。

function whois_query($domain) {

    // fix the domain name:
    $domain = strtolower(trim($domain));
    $domain = preg_replace(&#39;/^http:\/\//i&#39;, &#39;&#39;, $domain);
    $domain = preg_replace(&#39;/^www\./i&#39;, &#39;&#39;, $domain);
    $domain = explode(&#39;/&#39;, $domain);
    $domain = trim($domain[0]);

    // split the TLD from domain name
    $_domain = explode(&#39;.&#39;, $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(&#39;Error: No matching nic server found!&#39;);
    }

    $nic_server = $servers[$ext];

    $output = &#39;&#39;;

    // 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(&#39;Error: Could not connect to &#39; . $nic_server . &#39;!&#39;); }

    return $output;
}
登入後複製

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

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

<?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 class="brush:php;toolbar:false">" . print_r($vars, 1) . "
登入後複製
"; $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;

英文原文:10 super useful PHP snippets you probably haven’t seen

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何使用正規表示式批量修改PHP程式碼以滿足最新的程式碼規格? 如何使用正規表示式批量修改PHP程式碼以滿足最新的程式碼規格? Sep 05, 2023 pm 03:57 PM

如何使用正規表示式批量修改PHP程式碼以滿足最新的程式碼規格?導言:隨著時間推移和技術的發展,程式碼規格也不斷更新和改進。在開發過程中,我們經常需要對舊有的程式碼進行修改以符合最新的程式碼規格。然而,手動修改可以是一項繁瑣且耗時的任務。在這種情況下,正規表示式可以成為一個有力的工具。利用正規表示式,我們可以批量修改程式碼並自動滿足最新的程式碼規格。一、準備工作:在使用正

如何利用php程式碼測試功能提高程式碼的可維護性 如何利用php程式碼測試功能提高程式碼的可維護性 Aug 11, 2023 pm 12:43 PM

如何利用PHP程式碼測試功能來提高程式碼的可維護性在軟體開發過程中,程式碼的可維護性是一個非常重要的方面。一個可維護性高的程式碼意味著它易於理解、易於修改且易於維護。而測試是非常有效的一種提高程式碼可維護性的手段。本文將介紹如何利用PHP程式碼測試功能來達到這個目的,並提供相關的程式碼範例。單元測試單元測試是軟體開發中常用的測試方法,用於驗證程式碼中最小的可測試單元。在P

怎樣在瀏覽器中編寫PHP程式碼並保持程式碼不被執行? 怎樣在瀏覽器中編寫PHP程式碼並保持程式碼不被執行? Mar 10, 2024 pm 02:27 PM

怎樣在瀏覽器中編寫PHP程式碼並保持程式碼不被執行?隨著網路的普及,越來越多的人開始接觸網頁開發,其中對於PHP的學習也越來越受到關注。 PHP是一種在伺服器端運行的腳本語言,通常用於編寫動態網頁。然而,在練習階段,我們希望能夠在瀏覽器中編寫PHP程式碼並查看結果,但又不希望程式碼被執行。那麼,如何實現在瀏覽器中編寫PHP程式碼並保持不被執行呢?以下將詳細介紹。首先,

PHP程式碼實作百度文心一言API介面的請求參數加密與解密處理 PHP程式碼實作百度文心一言API介面的請求參數加密與解密處理 Aug 16, 2023 pm 11:40 PM

PHP程式碼實現百度文心一言API介面的請求參數加密和解密處理一言(Hitokoto)是一個提供獲取隨機句子的服務,百度文心一言API是其中一個允許開發者呼叫的介面。為了確保資料的安全性,我們可以對請求參數進行加密處理,同時在接收到回應後進行解密操作。以下是PHP程式碼實作百度文心一言API介面的請求參數加密與解密處理的範例:&lt;?phpfunction

如何自動化檢查PHP程式碼是否符合最新的程式碼規格? 如何自動化檢查PHP程式碼是否符合最新的程式碼規格? Sep 06, 2023 pm 12:33 PM

如何使用工具自動化檢查PHP程式碼是否符合最新的程式碼規格?引言:在軟體開發過程中,我們經常需要遵循一定的程式碼規格來保障程式碼的可讀性、可維護性和可擴充性。但是,手動檢查程式碼規格是一項繁瑣且容易出錯的任務。為了提高效率和減少錯誤,我們可以使用一些工具來自動化檢查程式碼規格。在本文中,我將介紹如何使用一些流行的工具來自動化檢查PHP程式碼是否符合最新的程式碼規格。一、PH

刨析php程式碼測試功能及其重要性 刨析php程式碼測試功能及其重要性 Aug 11, 2023 pm 03:12 PM

刨析php程式碼測試功能及其重要性前言:在軟體開發過程中,程式碼測試是一個不可或缺的環節。透過對程式碼進行測試,可以有效地發現及解決潛在的bug和錯誤,並提高程式碼的品質和穩定性。在php開發中,測試功能同樣具有重要性。本文將深入探討php程式碼測試的功能及其重要性,並結合實例進行說明。一、php程式碼測試的功能單元測試(UnitTesting)單元測試是最常見的測試方

PHP程式碼靜態分析與漏洞偵測技術 PHP程式碼靜態分析與漏洞偵測技術 Aug 07, 2023 pm 05:21 PM

PHP程式碼靜態分析與漏洞偵測技術引言:隨著網路的發展,PHP作為一種非常流行的伺服器端腳本語言,被廣泛應用於網站開發和動態網頁產生。然而,由於PHP語法靈活且不規範的特性,導致在開發過程中容易引入安全漏洞。為了解決這個問題,PHP程式碼靜態分析和漏洞偵測技術應運而生。一、靜態分析技術靜態分析技術是指在程式碼運行之前透過解析原始程式碼,使用靜態規則來識別潛在的安全性問

調試 PHP 程式碼中的報錯和意外行為 調試 PHP 程式碼中的報錯和意外行為 Aug 12, 2023 pm 04:49 PM

標題:PHP程式碼調試:解析報錯和意外行為導言:在開發PHP應用程式時,調試是一個重要的技能。當我們的程式碼出現報錯或意外行為時,我們需要快速地定位問題並進行修復。本文將探討一些常見的PHP錯誤和意外行為,並給出對應的程式碼範例和偵錯方法。一、文法錯誤語法錯誤是最常見的錯誤之一。在PHP中,語法錯誤會導致整個腳本無法正常執行。下面是一個範例程式碼:&lt;?php

See all articles