您好,欢迎访问一九零五行业门户网

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

编程很多时候我们是拿来主意,不喜欢重复制造轮子,更何况php本身就是开源所以为了节约工作时间,平时就收集一些非常实用的php代码,现在我把它分享给大家,希望能够帮助php开发者提升工作效率。(建议学习还是自己多写代码)
每位程序员和开发者都喜欢讨论他们最爱的代码片段,尤其是当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地址记录阅读的实际日期和时间。









代码如下 复制代码
error_reporting(0);
header(content-type: image/jpeg);
//get ip
if (!empty($_server['http_client_ip']))
{
$ip=$_server['http_client_ip'];
}
elseif (!empty($_server['http_x_forwarded_for']))
{
$ip=$_server['http_x_forwarded_for'];
}
else
{
$ip=$_server['remote_addr'];
}
//time
$actual_time = time();
$actual_day = date('y.m.d', $actual_time);
$actual_day_chart = date('d/m/y', $actual_time);
$actual_hour = date('h:i:s', $actual_time);
//get browser
$browser = $_server['http_user_agent'];
//log
$myfile = log.txt;
$fh = fopen($myfile, 'a+');
$stringdata = $actual_day . ' ' . $actual_hour . ' ' . $ip . ' ' . $browser . ' ' . \r\n;
fwrite($fh, $stringdata);
fclose($fh);
//generate image (es. dimesion is 1x1)
$newimage = imagecreate(1,1);
$grigio = imagecolorallocate($newimage,255,255,255);
imagejpeg($newimage);
imagedestroy($newimage);
?>
二、从网页中提取关键字
一段伟大的代码片段能够轻松的从网页中提取关键字。









代码如下 复制代码
$meta = get_meta_tags('http://www.emoticode.net/');
$keywords = $meta['keywords'];
// split keywords
$keywords = explode(',', $keywords );
// trim them
$keywords = array_map( 'trim', $keywords );
// remove empty values
$keywords = array_filter( $keywords );
print_r( $keywords );
三、查找页面上的所有链接
使用dom,你可以轻松从任何页面上抓取链接,代码示例如下:









代码如下 复制代码
$html = file_get_contents('http://www.php100.com');
$dom = new domdocument();
@$dom->loadhtml($html);
// grab all the on the page
$xpath = new domxpath($dom);
$hrefs = $xpath->evaluate(/html/body//a);
for ($i = 0; $i length; $i++) {
$href = $hrefs->item($i);
$url = $href->getattribute('href');
echo $url.'
';
}
四、自动转换url,跳转至超链接
在wordpress中,如果你想自动转换url,跳转至超链接页面,你可以利用内置的函数make_clickable()执行此操作。如果你想基于wordpress之外操作该程序,那么你可以参考wp-includes/formatting.php源代码。









代码如下 复制代码
function _make_url_clickable_cb($matches) {
$ret = '';
$url = $matches[2];
if ( empty($url) )
return $matches[0];
// removed trailing [.,;:] from url
if ( in_array(substr($url, -1), array('.', ',', ';', ':')) === true ) {
$ret = substr($url, -1);
$url = substr($url, 0, strlen($url)-1);
}
return $matches[1] . $url . $ret;
}
function _make_web_ftp_clickable_cb($matches) {
$ret = '';
$dest = $matches[2];
$dest = 'http://' . $dest;
if ( empty($dest) )
return $matches[0];
// removed trailing [,;:] from url
if ( in_array(substr($dest, -1), array('.', ',', ';', ':')) === true ) {
$ret = substr($dest, -1);
$dest = substr($dest, 0, strlen($dest)-1);
}
return $matches[1] . $dest . $ret;
}
function _make_email_clickable_cb($matches) {
$email = $matches[2] . '@' . $matches[3];
return $matches[1] . $email;
}
function make_clickable($ret) {
$ret = ' ' . $ret;
// in testing, using arrays here was found to be faster
$ret = preg_replace_callback('#([\s>])([\w]+?://[\w\\x80-\\xff\#$%&~/.\-;:=,?@\[\]+]*)#is', '_make_url_clickable_cb', $ret);
$ret = preg_replace_callback('#([\s>])((www|ftp)\.[\w\\x80-\\xff\#$%&~/.\-;:=,?@\[\]+]*)#is', '_make_web_ftp_clickable_cb', $ret);
$ret = preg_replace_callback('#([\s>])([.0-9a-z_+-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,})#i', '_make_email_clickable_cb', $ret);
// this one is not in an array because we need it to run last, for cleanup of accidental links within links
$ret = preg_replace(#(]+?>|>))]+?>([^>]+?)#i, $1$3, $ret);
$ret = trim($ret);
return $ret;
}
五、创建数据url
数据url可以直接嵌入到html/css/js中,以节省大量的 http请求。 下面的这段代码可利用$file轻松创建数据url。









代码如下 复制代码
function data_uri($file, $mime) {
$contents=file_get_contents($file);
$base64=base64_encode($contents);
echo data:$mime;base64,$base64;
}
六、从服务器上下载&保存一个远程图片
当你在搭建网站时,从远程服务器下载某张图片并且将其保存在自己的服务器上,这一操作会经常用到。代码如下:









代码如下 复制代码
$image = file_get_contents('http://www.php100.com/image.jpg');
file_put_contents('/images/image.jpg', $image);//where to save the image
七、移除remove microsoft word html tag
当你使用microsoft word会创建许多tag,比如font,span,style,class等。这些标签对于word本身而言是非常有用的,但是当你从word粘贴至网页时,你会发现很多无用的tag。因此,下面的这段代码可帮助你删除所有无用的word html tag。









代码如下 复制代码
function cleanhtml($html) {
///
/// removes all font and span tags, and all class and style attributes.
/// designed to get rid of non-standard microsoft word html tags.
///
// start by completely removing all unwanted tags
$html = ereg_replace(]*>,,$html);
// then run another pass over the html (twice), removing unwanted attributes
$html = ereg_replace(]*)(class|lang|style|size|face)=([^]*|'[^']*'|[^>]+)([^>]*)>,,$html);
$html = ereg_replace(]*)(class|lang|style|size|face)=([^]*|'[^']*'|[^>]+)([^>]*)>,,$html);
return $html
}
八、检测浏览器语言
如果你的网站上有多种语言,那么可以使用这段代码作为默认的语言来检测浏览器语言。该段代码将返回浏览器客户端使用的初始语言。









代码如下 复制代码
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;
}
九、显示facebook 粉丝数量
如果你的网站或者博客上有内链的facebook页面,你或许想知道拥有多少粉丝。这段代码将帮助你查看facebook粉丝数,记住,别忘了在你的页面id第二行添加该段代码。









代码如下 复制代码
page->fan_count;
echo $fans;
?>
其它类似信息

推荐信息