9个实用的PHP代码片段分享


Posted in PHP onJanuary 22, 2015

一.查看邮件是否已被阅读
      
当你发送邮件时,你肯定很想知道你的邮件是否已被对方查看。下面的代码就能实现记录阅读你邮件的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);

?>

源代码:http://www.emoticode.net/php/code-to-find-out-if-your-email-has-been-read.html
 
二.从网页中提取关键词

这段优秀的代码可以简单地实现从网页中提取关键词的功能。

$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 );

源代码:http://www.emoticode.net/php/extract-keywords-from-any-webpage.html
 
三.查找页面上的所有链接

使用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 < $hrefs->length; $i++) {

       $href = $hrefs->item($i);

       $url = $href->getAttribute('href');

       echo $url.'';

}

源代码:http://snipplr.com/view/70489/find-all-links-on-a-page/
 
四.自动转换URL为可点击超链接
      
在Wordpress中,如果你想自动转换所有的URLs为可点击超链接,你就可以使用内置函数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;

}

源代码:http://zenverse.net/php-function-to-auto-convert-url-into-hyperlink/
 
 五.创建数据URI

数据URI可以帮助将图像嵌入到HTML/CSS/JS中,从而节省HTTP请求。下面的函数可以利用$file创建数据URI。

function data_uri($file, $mime) {

    $contents=file_get_contents($file);

    $base64=base64_encode($contents);

    echo "data:$mime;base64,$base64";

}

源代码:http://css-tricks.com/snippets/php/create-data-uris/
 
六.下载和保存远程图片到你的服务器
      
当你在搭建网站时,很可能会从远程服务器上下载图片保存到你自己的服务器上,下面的代码就可以帮助你实现这个功能。
$image = file_get_contents('http://www.php100.com/image.jpg');

file_put_contents('/images/image.jpg', $image);   //Where to save the image

源代码:http://www.catswhocode.com/blog/snippets/download-save-a-remote-image-on-your-server-using-php
 
七.移除Microsoft Word HTML标签
      
当你使用Microsoft Word时,会创建很多标签tag,比如font、span、style、class等,这些标签在Word中十分有用,但当你从Word中把文本粘贴到网页上,就会出现很多没用的标签。下面实用的函数可以帮助你清除所有的Word HTML标签。
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("<(/)?(font|span|del|ins)[^>]*>","",$html);

// then run another pass over the html (twice), removing unwanted attributes

$html = ereg_replace("<([^>]*)(class|lang|style|size|face)=("[^"]*"|'[^']*'|[^>]+)([^>]*)>","<\1>",$html);

$html = ereg_replace("<([^>]*)(class|lang|style|size|face)=("[^"]*"|'[^']*'|[^>]+)([^>]*)>","<\1>",$html);

return $html

}

源代码:http://tim.mackey.ie/CommentView,guid,2ece42de-a334-4fd0-8f94-53c6602d5718.aspx
 
八.检测浏览器语言

如果你的网站是多种语言的,下面的代码可以帮助你检测浏览器语言,它会返回客户端浏览器的默认语言。

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;

}

源代码:http://snipplr.com/view/12631/detect-browser-language/
 
九.显示Facebook上的粉丝数量
      
如果在你的网站或博客中,链有Facebook页面,你可能希望显示Facebook上的粉丝数量,下面的代码就可以帮助你获取粉丝数量,另外不要忘记在代码第二行添加你的页面ID。
    

$page_id = "YOUR PAGE-ID";

    $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");

    $fans = $xml->page->fan_count;

    echo $fans;

?>

源代码:http://www.wprecipes.com/display-number-of-facebook-fans-in-full-text-on-your-wordpress-blog
PHP 相关文章推荐
PHP新手上路(六)
Oct 09 PHP
php入门学习知识点六 PHP文件的读写操作代码
Jul 14 PHP
PHP5 的对象赋值机制介绍
Aug 02 PHP
PHP面向对象法则
Feb 23 PHP
php学习之function的用法
Jul 14 PHP
网页上facebook分享功能具体实现
Jan 26 PHP
php定时执行任务设置详解
Feb 06 PHP
php中判断数组相等的方法以及数组运算符介绍
Mar 30 PHP
PHP 获取客户端 IP 地址的方法实例代码
Nov 11 PHP
yii2的restful api路由实例详解
May 14 PHP
PHP使用openssl扩展实现加解密方法示例
Feb 20 PHP
Thinkphp5+Redis实现商品秒杀代码实例讲解
Dec 29 PHP
PHP中的命名空间相关概念浅析
Jan 22 #PHP
PHP生成随机数的方法实例分析
Jan 22 #PHP
9条PHP编程小知识及易犯的小错误
Jan 22 #PHP
PHP将HTML转换成文本的实现代码
Jan 21 #PHP
php使用Cookie控制访问授权的方法
Jan 21 #PHP
PHP+MySQL修改记录的方法
Jan 21 #PHP
PHP+MySQL删除操作实例
Jan 21 #PHP
You might like
在php中使用sockets:从新闻组中获取文章
2006/10/09 PHP
一个基于PDO的数据库操作类
2011/03/24 PHP
几个有用的php字符串过滤,转换函数代码
2012/05/01 PHP
thinkphp中字符截取函数msubstr()用法分析
2016/01/09 PHP
jQuery学习笔记(3)--用jquery(插件)实现多选项卡功能
2013/04/08 Javascript
jquery特效 幻灯片效果示例代码
2013/07/16 Javascript
推荐一款jQuery插件模板
2015/01/09 Javascript
jQuery使用append在html元素后同时添加多项内容的方法
2015/03/26 Javascript
基于JavaScript实现移除(删除)数组中指定元素
2016/01/04 Javascript
深入理解node exports和module.exports区别
2016/06/01 Javascript
Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)
2017/01/20 Javascript
微信小程序 PHP生成带参数二维码
2017/02/21 Javascript
vue 下列表侧滑操作实例代码详解
2018/07/24 Javascript
Vue配合iView实现省市二级联动的示例代码
2018/07/27 Javascript
傻瓜式解读koa中间件处理模块koa-compose的使用
2018/10/30 Javascript
如何为你的JavaScript代码日志着色详解
2019/04/08 Javascript
js尾调用优化的实现
2019/05/23 Javascript
Vue基于iview实现登录密码的显示与隐藏功能
2020/03/06 Javascript
实用的 vue tags 创建缓存导航的过程实现
2020/12/03 Vue.js
Python实现从百度API获取天气的方法
2015/03/11 Python
详谈python3 numpy-loadtxt的编码问题
2018/04/29 Python
django的登录注册系统的示例代码
2018/05/14 Python
pytorch中tensor的合并与截取方法
2018/07/26 Python
Python3内置模块random随机方法小结
2019/07/13 Python
python模拟点击玩游戏的实例讲解
2020/11/26 Python
HTML5 通信API 跨域门槛将不再高、数据推送也不再是梦
2013/04/25 HTML / CSS
伯克斯奥特莱斯:Burkes Outlet
2019/03/30 全球购物
干部培训自我鉴定
2014/01/22 职场文书
大学生旷课检讨书
2014/01/22 职场文书
应届毕业生通用的自荐书范文
2014/02/07 职场文书
报关专员求职信范文
2014/02/22 职场文书
保密工作实施方案
2014/02/24 职场文书
2014国庆节标语口号
2014/09/19 职场文书
红十字会救护培训简讯
2015/07/20 职场文书
公司员工宿舍管理制度
2015/08/07 职场文书
会计专业2019暑假实习报告
2019/06/21 职场文书