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下把数组保存为文件格式的实例应用
Feb 08 PHP
在Windows下编译适用于PHP 5.2.12及5.2.13的eAccelerator.dll(附下载)
May 04 PHP
一篇有意思的技术文章php介绍篇
Oct 26 PHP
解析php中var_dump,var_export,print_r三个函数的区别
Jun 21 PHP
解析strtr函数的效率问题
Jun 26 PHP
php网站判断用户是否是手机访问的方法
Nov 01 PHP
PHP递归调用数组值并用其执行指定函数的方法
Apr 01 PHP
Thinkphp微信公众号支付接口
Aug 04 PHP
PHP插件PHPMailer发送邮件功能
Feb 28 PHP
php实现页面纯静态的实例代码
Jun 21 PHP
PHP文件后缀不强制为.php方法
Mar 31 PHP
基于PHP实现解密或加密Cloudflar邮箱保护
Jun 24 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中ob_start函数的使用说明
2013/11/11 PHP
简单分析ucenter 会员同步登录通信原理
2014/08/25 PHP
php过滤html标记属性类用法实例
2014/09/23 PHP
Yii2针对指定url的生成及图片等的引入方法小结
2016/07/18 PHP
php进行md5加密简单实例方法
2019/09/19 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
javascript 解析url的search方法
2010/02/09 Javascript
jquery 关键字“拖曳搜索”之“拖曳”以及 图片“提示自适应放大”效果 的实现
2010/04/18 Javascript
原生javascript实现Tab选项卡切换功能
2015/01/12 Javascript
javascript实现的淘宝旅行通用日历组件用法实例
2015/08/03 Javascript
原生js实现class的添加和删除简单代码
2016/07/12 Javascript
简洁实用的BootStrap jQuery手风琴插件
2016/08/31 Javascript
移动端使用localStorage缓存Js和css文的方法(web开发)
2016/09/20 Javascript
原生js实现验证码功能
2017/03/16 Javascript
ES6中Class类的静态方法实例小结
2017/10/28 Javascript
详解vue数组遍历方法forEach和map的原理解析和实际应用
2018/11/15 Javascript
Layui 动态禁止select下拉的例子
2019/09/03 Javascript
微信小程序实现音乐播放器
2019/11/20 Javascript
js判断非127开头的IP地址的实例代码
2020/01/05 Javascript
浅谈javascript事件环微任务和宏任务队列原理
2020/09/12 Javascript
在HTML中使用JavaScript的两种方法
2020/12/24 Javascript
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
2017/03/16 Python
python 列表中[ ]中冒号‘:’的作用
2019/04/30 Python
python flask 如何修改默认端口号的方法步骤
2019/07/12 Python
将pymysql获取到的数据类型是tuple转化为pandas方式
2020/05/15 Python
PyTorch的torch.cat用法
2020/06/28 Python
HTML5 canvas基本绘图之绘制线条
2016/06/27 HTML / CSS
大学生自我鉴定
2013/12/16 职场文书
分厂厂长岗位职责
2013/12/29 职场文书
运动会表扬稿大全
2014/01/16 职场文书
函授大学生自我鉴定
2014/02/05 职场文书
党校毕业个人总结
2015/02/28 职场文书
员工工作表现自我评价
2015/03/06 职场文书
2015年综治维稳工作总结
2015/04/07 职场文书
2015年班组建设工作总结
2015/05/13 职场文书
人民的好儿女观后感
2015/06/18 职场文书