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_SELF的安全问题
Sep 05 PHP
PHP 判断变量类型实现代码
Oct 23 PHP
php 求质素(素数) 的实现代码
Apr 12 PHP
php页面缓存ob系列函数介绍
Oct 18 PHP
PHP关联链接常用代码
Nov 05 PHP
基于curl数据采集之正则处理函数get_matches的使用
Apr 28 PHP
Codeigniter中集成smarty和adodb的方法
Mar 04 PHP
ThinkPHP连接Oracle数据库
Apr 22 PHP
基于thinkPHP类的插入数据库操作功能示例
Jan 06 PHP
IIS 7.5 asp Session超时时间设置方法
Apr 17 PHP
php实现统计二进制中1的个数算法示例
Jan 23 PHP
PHP字符串与数组处理函数用法小结
Jan 07 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仿ZOL分页类代码
2008/10/02 PHP
php Http_Template_IT类库进行模板替换
2009/03/19 PHP
php图片上传存储源码并且可以预览
2011/08/26 PHP
thinkphp实现面包屑导航(当前位置)例子分享
2014/05/10 PHP
php使用Jpgraph绘制简单X-Y坐标图的方法
2015/06/10 PHP
PHP内存缓存功能memcached示例
2016/10/19 PHP
PHP实现图片批量打包下载功能
2017/03/01 PHP
PHP+swoole+linux实现系统监控和性能优化操作示例
2019/04/15 PHP
PHP哈希表实现算法原理解析
2020/12/11 PHP
Sample script that displays all of the users in a given SQL Server DB
2007/06/16 Javascript
jquery 简单的进度条实现代码
2010/03/11 Javascript
Jquey拖拽控件Draggable使用方法(asp.net环境)
2010/09/28 Javascript
JavaScript版DateAdd和DateDiff函数代码
2012/03/01 Javascript
nodejs前端自动化构建环境的搭建
2017/07/26 NodeJs
史上最全JavaScript常用的简写技巧(推荐)
2017/08/17 Javascript
OkHttp踩坑随笔为何 response.body().string() 只能调用一次
2018/01/08 Javascript
jQuery实现列表的增加和删除功能
2018/06/14 jQuery
微信小程序按钮点击动画效果的实现
2019/09/04 Javascript
使用Vant完成通知栏Notify的提示操作
2020/11/11 Javascript
python基础教程之类class定义使用方法
2014/02/20 Python
numpy中矩阵合并的实例
2018/06/15 Python
Python-Tkinter Text输入内容在界面显示的实例
2019/07/12 Python
python实现按行分割文件
2019/07/22 Python
python 6.7 编写printTable()函数表格打印(完整代码)
2020/03/25 Python
python使用梯度下降和牛顿法寻找Rosenbrock函数最小值实例
2020/04/02 Python
CSS3线性渐变简单实现以及该属性在浏览器中的不同
2012/12/12 HTML / CSS
伯克斯奥特莱斯:Burkes Outlet
2019/03/30 全球购物
Viking Direct荷兰:购买办公用品
2019/06/20 全球购物
大学教师年终总结的自我评价
2013/10/29 职场文书
银行介绍信范文
2014/01/10 职场文书
妇女儿童发展规划实施方案
2014/03/16 职场文书
文员岗位职责
2015/02/04 职场文书
内乡县衙导游词
2015/02/05 职场文书
居安思危观后感
2015/06/11 职场文书
小学生读书笔记范文
2015/06/30 职场文书
Redis命令处理过程源码解析
2022/02/12 Redis