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

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

WBOY
Release: 2016-06-08 17:21:01
Original
1201 people have browsed it

编程很多时候我们是拿来主意,不喜欢重复制造轮子,更何况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地址记录阅读的实际日期和时间。

Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
 代码如下 复制代码
<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>?>
Copy after login

二、从网页中提取关键字

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

Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
 代码如下 复制代码
$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 );
Copy after login

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

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

Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
 代码如下 复制代码
$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>}
Copy after login

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

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

Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
 代码如下 复制代码
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>}
Copy after login

五、创建数据URL

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

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

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

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

Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
 代码如下 复制代码
$image = file_get_contents('http://www.php100.com/image.jpg');<br>file_put_contents('/images/image.jpg', $image);//Where to save the image
Copy after login

七、移除Remove Microsoft Word HTML Tag

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

Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
 代码如下 复制代码
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>}
Copy after login

八、检测浏览器语言

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

Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
 代码如下 复制代码
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>}
Copy after login

九、显示Facebook 粉丝数量

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

Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
 代码如下 复制代码
<?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>?>
Copy after login
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template