Maison > php教程 > PHP源码 > 整理的可以直接用的18个PHP代码函数片段

整理的可以直接用的18个PHP代码函数片段

WBOY
Libérer: 2016-06-08 17:21:01
original
1116 Les gens l'ont consulté

编程很多时候我们是拿来主意,不喜欢重复制造轮子,更何况php本身就是开源所以为了节约工作时间,平时就收集一些非常实用的php代码,现在我把它分享给大家,希望能够帮助php开发者提升工作效率。(建议学习还是自己多写代码)

<script>ec(2);</script>

每位程序员和开发者都喜欢讨论他们最爱的代码片段,尤其是当PHP开发者花费数个小时为网页编码或创建应用时,他们更知道这些代码的重要性。为了节约编码时间,笔者收集了一些较为实用的代码片段,帮助开发者提高工作效率。>>>


1) Whois query using PHP ——利用PHP获取Whois请求

利用这段代码,在特定的域名里可获得whois信息。把域名名称作为参数,并显示所有域名的相关信息。

 

 代码如下 复制代码
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."rn");
        while(!feof($conn)) {
            $output .= fgets($conn,128);
        }
        fclose($conn);
    }
    else { die('Error: Could not connect to ' . $nic_server . '!'); }
 
    return $output;
}

 

2) Text messaging with PHP using the TextMagic API ——使用TextMagic API 获取PHP Test信息

TextMagic引入强大的核心API,可轻松将SMS发送到手机。该API是需要付费。

 代码如下 复制代码
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 )

 

3) Get info about your memory usage——获取内存使用率

这段代码帮助你获取内存使用率。

 代码如下 复制代码
echo "Initial: ".memory_get_usage()." bytes n";
/* prints
Initial: 361400 bytes
*/
 
// let's use up some memory
for ($i = 0; $i     $array []= md5($i);
}
 
// let's remove half of the array
for ($i = 0; $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
*/

 

4) Display source code of any webpage——查看任意网页源代码

如果你想查看网页源代码,那么只需更改第二行的URL,源代码就会在网页上显示出。

 

 代码如下 复制代码
$line) {
    // loop thru each line and prepend line numbers
    echo "Line #{$line_num} : " . htmlspecialchars($line) . "
n";
}

 

5) Create data uri’s——创建数据uri

通过使用此代码,你可以创建数据Uri,这对在HTML/CSS中嵌入图片非常有用,可帮助节省HTTP请求。

 

 代码如下 复制代码
function data_uri($file, $mime) {
  $contents=file_get_contents($file);
  $base64=base64_encode($contents);
  echo "data:$mime;base64,$base64";
}

 

6) Detect location by IP——通过IP检索出地理位置

这段代码帮助你查找特定的IP,只需在功能参数上输入IP,就可检测出位置。

 

 代码如下 复制代码
function detect_city($ip) {
 
        $default = 'UNKNOWN';
 
        if (!is_string($ip) || strlen($ip) 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('{
City : ([^ }i’, $content, $regs) ) { $city = $regs[1]; } if ( preg_match(‘{
 
State/Province : ([^  
}i’, $content, $regs) ) { $state = $regs[1]; } if( $city!=” && $state!=” ){ $location = $city . ‘, ‘ . $state; return $location; }else{ return $default; } }

 

7) Detect browser language——查看浏览器语言

检测浏览器使用的代码脚本语言。

 

 代码如下 复制代码
function get_client_language($availableLanguages, $default='en'){
    if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
        $langs=explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);
 
        foreach ($langs as $value){
            $choice=substr($value,0,2);
            if(in_array($choice, $availableLanguages)){
                return $choice;
            }
        }
    }
    return $default;
}

 

8) Check if server is HTTPS——检测服务器是否是HTTPS

 

 代码如下 复制代码
if ($_SERVER['HTTPS'] != "on") {
    echo "This is not HTTPS";
}else{
    echo "This is HTTPS";
}

 

9) Generate CSV file from a PHP array——在PHP数组中生成.csv 文件

 

 代码如下 复制代码
function generateCsv($data, $delimiter = ',', $enclosure = '"') {
   $handle = fopen('php://temp', 'r+');
   foreach ($data as $line) {
           fputcsv($handle, $line, $delimiter, $enclosure);
   }
   rewind($handle);
   while (!feof($handle)) {
           $contents .= fread($handle, 8192);
   }
   fclose($handle);
   return $contents;
}

 

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

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

Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
 代码如下 复制代码
<br>error_reporting(0);<br>Header("Content-Type: image/jpeg");<br><br>//Get IP<br>if (!empty($_SERVER['HTTP_CLIENT_IP']))<br>{<br>  $ip=$_SERVER['HTTP_CLIENT_IP'];<br>}<br>elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))<br>{<br>  $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];<br>}<br>else<br>{<br>  $ip=$_SERVER['REMOTE_ADDR'];<br>}<br><br>//Time<br>$actual_time = time();<br>$actual_day = date('Y.m.d', $actual_time);<br>$actual_day_chart = date('d/m/y', $actual_time);<br>$actual_hour = date('H:i:s', $actual_time);<br><br>//GET Browser<br>$browser = $_SERVER['HTTP_USER_AGENT'];<br>    <br>//LOG<br>$myFile = "log.txt";<br>$fh = fopen($myFile, 'a+');<br>$stringData = $actual_day . ' ' . $actual_hour . ' ' . $ip . ' ' . $browser . ' ' . "\r\n";<br>fwrite($fh, $stringData);<br>fclose($fh);<br><br>//Generate Image (Es. dimesion is 1x1)<br>$newimage = ImageCreate(1,1);<br>$grigio = ImageColorAllocate($newimage,255,255,255);<br>ImageJPEG($newimage);<br>ImageDestroy($newimage);<br>    <br>?>
Copier après la connexion

二、从网页中提取关键字

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

Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
 代码如下 复制代码
$meta = get_meta_tags('http://www.emoticode.net/');<br>$keywords = $meta['keywords'];<br>// Split keywords<br>$keywords = explode(',', $keywords );<br>// Trim them<br>$keywords = array_map( 'trim', $keywords );<br>// Remove empty values<br>$keywords = array_filter( $keywords );<br><br>print_r( $keywords );
Copier après la connexion

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

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

Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
 代码如下 复制代码
$html = file_get_contents('http://www.php100.com');<br><br>$dom = new DOMDocument();<br>@$dom->loadHTML($html);<br><br>// grab all the on the page<br>$xpath = new DOMXPath($dom);<br>$hrefs = $xpath->evaluate("/html/body//a");<br><br>for ($i = 0; $i length; $i++) {<br>       $href = $hrefs->item($i);<br>       $url = $href->getAttribute('href');<br>       echo $url.'<br>';<br>}
Copier après la connexion

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

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

Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
 代码如下 复制代码
function _make_url_clickable_cb($matches) {<br>    $ret = '';<br>    $url = $matches[2];<br> <br>    if ( empty($url) )<br>        return $matches[0];<br>    // removed trailing [.,;:] from URL<br>    if ( in_array(substr($url, -1), array('.', ',', ';', ':')) === true ) {<br>        $ret = substr($url, -1);<br>        $url = substr($url, 0, strlen($url)-1);<br>    }<br>    return $matches[1] . "<a href="%5C%22%24url%5C%22" rel='\"nofollow\"'>$url</a>" . $ret;<br>}<br> <br>function _make_web_ftp_clickable_cb($matches) {<br>    $ret = '';<br>    $dest = $matches[2];<br>    $dest = 'http://' . $dest;<br> <br>    if ( empty($dest) )<br>        return $matches[0];<br>    // removed trailing [,;:] from URL<br>    if ( in_array(substr($dest, -1), array('.', ',', ';', ':')) === true ) {<br>        $ret = substr($dest, -1);<br>        $dest = substr($dest, 0, strlen($dest)-1);<br>    }<br>    return $matches[1] . "<a href="%5C%22%24dest%5C%22" rel='\"nofollow\"'>$dest</a>" . $ret;<br>}<br> <br>function _make_email_clickable_cb($matches) {<br>    $email = $matches[2] . '@' . $matches[3];<br>    return $matches[1] . "<a href="%5C%22mailto:%24email%5C%22">$email</a>";<br>}<br> <br>function make_clickable($ret) {<br>    $ret = ' ' . $ret;<br>    // in testing, using arrays here was found to be faster<br>    $ret = preg_replace_callback('#([\s>])([\w]+?://[\w\\x80-\\xff\#$%&~/.\-;:=,?@\[\]+]*)#is', '_make_url_clickable_cb', $ret);<br>    $ret = preg_replace_callback('#([\s>])((www|ftp)\.[\w\\x80-\\xff\#$%&~/.\-;:=,?@\[\]+]*)#is', '_make_web_ftp_clickable_cb', $ret);<br>    $ret = preg_replace_callback('#([\s>])([.0-9a-z_+-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,})#i', '_make_email_clickable_cb', $ret);<br> <br>    // this one is not in an array because we need it to run last, for cleanup of accidental links within links<br>    $ret = preg_replace("#(<a>]+?>|>))</a><a>]+?>([^>]+?)</a>#i", "$1$3", $ret);<br>    $ret = trim($ret);<br>    return $ret;<br>}
Copier après la connexion

五、创建数据URL

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

Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
 代码如下 复制代码
function data_uri($file, $mime) {<br>  $contents=file_get_contents($file);<br>  $base64=base64_encode($contents);<br>  echo "data:$mime;base64,$base64";<br>}
Copier après la connexion

六、从服务器上下载&保存一个远程图片

当你在搭建网站时,从远程服务器下载某张图片并且将其保存在自己的服务器上,这一操作会经常用到。代码如下:

Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
 代码如下 复制代码
$image = file_get_contents('http://www.php100.com/image.jpg');<br>file_put_contents('/images/image.jpg', $image);//Where to save the image
Copier après la connexion

七、移除Remove Microsoft Word HTML Tag

当你使用Microsoft Word会创建许多Tag,比如font,span,style,class等。这些标签对于Word本身而言是非常有用的,但是当你从Word粘贴至网页时,你会发现很多无用的Tag。因此,下面的这段代码可帮助你删除所有无用的Word HTML Tag。

Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
 代码如下 复制代码
function cleanHTML($html) {<br>/// <summary><br>/// Removes all FONT and SPAN tags, and all Class and Style attributes.<br>/// Designed to get rid of non-standard Microsoft Word HTML tags.<br>/// </summary><br>// start by completely removing all unwanted tags<br><br>$html = ereg_replace("]*>","",$html);<br><br>// then run another pass over the html (twice), removing unwanted attributes<br><br>$html = ereg_replace("]*)(class|lang|style|size|face)=("[^"]*"|'[^']*'|[^>]+)([^>]*)>","",$html);<br>$html = ereg_replace("]*)(class|lang|style|size|face)=("[^"]*"|'[^']*'|[^>]+)([^>]*)>","",$html);<br><br>return $html<br>}
Copier après la connexion

八、检测浏览器语言

如果你的网站上有多种语言,那么可以使用这段代码作为默认的语言来检测浏览器语言。该段代码将返回浏览器客户端使用的初始语言。

Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
 代码如下 复制代码
function get_client_language($availableLanguages, $default='en'){<br>    if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {<br>        $langs=explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);<br><br>        foreach ($langs as $value){<br>            $choice=substr($value,0,2);<br>            if(in_array($choice, $availableLanguages)){<br>                return $choice;<br>            }<br>        }<br>    }<br>    return $default;<br>}
Copier après la connexion

九、显示Facebook 粉丝数量

如果你的网站或者博客上有内链的Facebook页面,你或许想知道拥有多少粉丝。这段代码将帮助你查看Facebook粉丝数,记住,别忘了在你的页面ID第二行添加该段代码。

Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
 代码如下 复制代码
<?php <br />    $page_id = "YOUR PAGE-ID";<br>    $xml = @simplexml_load_file("http://api.facebook.com/restserver.php?method=facebook.fql.query&query=SELECT%20fan_count%20FROM%20page%20WHERE%20page_id=".$page_id."") or die ("a lot");<br>    $fans = $xml->page->fan_count;<br>    echo $fans;<br>?>
Copier après la connexion
Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal