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 相关文章推荐
15种PHP Encoder的比较
Apr 17 PHP
PHP写入WRITE编码为UTF8的文件的实现代码
Jul 07 PHP
ajax完美实现两个网页 分页功能的实例代码
Apr 16 PHP
PHP无限分类(树形类)
Sep 28 PHP
php与flash as3 socket通信传送文件实现代码
Aug 16 PHP
php中的观察者模式简单实例
Jan 20 PHP
PHP实现加密的几种方式介绍
Feb 22 PHP
PHP获取当前日期和时间及格式化方法参数
May 11 PHP
JavaScript与HTML结合的基本使用方法整理
Oct 12 PHP
php array_values 返回数组的值实例详解
Nov 17 PHP
laravel自定义分页的实现案例offset()和limit()
Oct 15 PHP
php数值计算num类简单操作示例
May 15 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删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
2013/06/27 PHP
关于使用key/value数据库redis和TTSERVER的心得体会
2013/06/28 PHP
PHP函数in_array()使用详解
2014/08/20 PHP
php批量删除cookie的简单实现方法
2015/01/26 PHP
zend framework中使用memcache的方法
2016/03/04 PHP
PHP使用栈解决约瑟夫环问题算法示例
2017/08/27 PHP
utf8的编码算法 转载
2006/12/27 Javascript
capacityFixed 基于jquery的类似于新浪微博新消息提示的定位框
2011/05/24 Javascript
Easyui的组合框的取值与赋值
2016/10/28 Javascript
AngularJs入门教程之环境搭建+创建应用示例
2016/11/01 Javascript
详解webpack性能优化——DLL
2017/10/20 Javascript
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
2018/05/16 Javascript
解决vue中使用Axios调用接口时出现的ie数据处理问题
2018/08/13 Javascript
jQuery实现基本动画效果的方法详解
2018/09/06 jQuery
JSON.stringify()方法讲解
2019/01/31 Javascript
通过JQuery,JQueryUI和Jsplumb实现拖拽模块
2019/06/18 jQuery
超详细的5个Shell脚本实例分享(值得收藏)
2019/08/15 Javascript
javascript操作元素的常见方法小结
2019/11/13 Javascript
Vue computed 计算属性代码实例
2020/04/22 Javascript
Python新手们容易犯的几个错误总结
2017/04/01 Python
python使用Pycharm创建一个Django项目
2018/03/05 Python
python实现的MySQL增删改查操作实例小结
2018/12/19 Python
windows下Pycharm安装opencv的多种方法
2020/03/05 Python
keras的backend 设置 tensorflow,theano操作
2020/06/30 Python
AmazeUI 列表的实现示例
2020/08/17 HTML / CSS
ASOS比利时:英国线上零售商及自有品牌
2018/07/29 全球购物
人事助理岗位职责
2013/11/18 职场文书
马云北大演讲完整版:真心话,什么才是阿里的核心竞争力?
2014/04/04 职场文书
企业员工薪酬方案
2014/06/04 职场文书
网吧消防安全责任书
2014/07/29 职场文书
合同意向书范本
2014/07/30 职场文书
工资收入证明
2014/10/07 职场文书
刑事附带民事代理词
2015/05/25 职场文书
2019年暑期法院实习报告
2019/12/18 职场文书
redis 解决库存并发问题实现数量控制
2022/04/08 Redis
鸿蒙3.0体验感怎么样? 鸿蒙3.0系统评测向
2022/08/14 数码科技