9段PHP实用功能的代码推荐


Posted in PHP onOctober 14, 2014

一、查看邮件是否已被阅读

当你在发送邮件时,你或许很想知道该邮件是否被对方已阅读。这里有段非常有趣的代码片段能够显示对方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.example.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.'<br />';

}

四、自动转换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] . "<a href=\"$url\" rel=\"nofollow\">$url</a>" . $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] . "<a href=\"$dest\" rel=\"nofollow\">$dest</a>" . $ret;

}

  

function _make_email_clickable_cb($matches) {

    $email = $matches[2] . '@' . $matches[3];

    return $matches[1] . "<a href=\"mailto:$email\">$email</a>";

}

  

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("#(<a( [^>]+?>|>))<a [^>]+?>([^>]+?)</a></a>#i", "$1$3</a>", $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.url.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) {

/// <summary>

/// Removes all FONT and SPAN tags, and all Class and Style attributes.

/// Designed to get rid of non-standard Microsoft Word HTML tags.

/// </summary>

// 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

}

八、检测浏览器语言

如果你的网站上有多种语言,那么可以使用这段代码作为默认的语言来检测浏览器语言。该段代码将返回浏览器客户端使用的初始语言。

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第二行添加该段代码。

<?php

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

?>
PHP 相关文章推荐
在PHP的图形函数中显示汉字
Oct 09 PHP
自定义PHP分页函数
Oct 09 PHP
PHP写的求多项式导数的函数代码
Jul 04 PHP
thinkphp 多表 事务详解
Jun 17 PHP
ThinkPHP实现ajax仿官网搜索功能实例
Dec 02 PHP
Laravel中使用自己编写类库的3种方法
Feb 10 PHP
PHP四种基本排序算法示例
Apr 09 PHP
PHP+Ajax实现验证码的实时验证
Jul 20 PHP
无需数据库在线投票调查php代码
Jul 20 PHP
php+redis实现商城秒杀功能
Nov 19 PHP
PHP操作Redis常用技巧总结
Apr 24 PHP
安装docker和docker-compose实例详解
Jul 30 PHP
五款PHP代码重构工具推荐
Oct 14 #PHP
ThinkPHP 表单自动验证运用示例
Oct 13 #PHP
php 模拟 asp.net webFrom 按钮提交事件实例
Oct 13 #PHP
ThinkPHP表单自动验证实例
Oct 13 #PHP
Linux下安装oracle客户端并配置php5.3
Oct 12 #PHP
PHP依赖倒置(Dependency Injection)代码实例
Oct 11 #PHP
php实现设计模式中的单例模式详解
Oct 11 #PHP
You might like
一个SQL管理员的web接口
2006/10/09 PHP
PHP图像处理类库及演示分享
2015/05/17 PHP
编写PHP脚本来实现WordPress中评论分页的功能
2015/12/10 PHP
Aptana调试javascript图解教程
2009/11/30 Javascript
Visual Studio中的jQuery智能提示设置方法
2010/03/27 Javascript
基于jquery实现图片广告轮换效果代码
2011/07/07 Javascript
js验证电话号码与手机支持+86的正则表达式
2014/01/23 Javascript
js类定义函数时用prototype与不用的区别示例介绍
2014/06/10 Javascript
node.js中的fs.futimes方法使用说明
2014/12/17 Javascript
jquery控制背景音乐开关与自动播放提示音的方法
2015/02/06 Javascript
jQuery在ul中显示某个li索引号的方法
2015/03/17 Javascript
纯javascript制作日历控件
2015/07/17 Javascript
javascript 使用for循环时该注意的问题-附问题总结
2015/08/19 Javascript
JS实现网页标题随机显示名人名言的方法
2015/11/03 Javascript
jQuery使用中可能被XSS攻击的一些危险环节提醒
2016/05/24 Javascript
Vue.js实现表格动态增加删除的方法(附源码下载)
2017/01/20 Javascript
利用js定义一个导航条菜单
2017/03/14 Javascript
详解Weex基于Vue2.0开发模板搭建
2017/03/20 Javascript
vue绑定的点击事件阻止冒泡的实例
2018/02/08 Javascript
浅谈Layui的eleTree树式选择器使用方法
2019/09/25 Javascript
django实现分页的方法
2015/05/26 Python
Python实现查找匹配项作处理后再替换回去的方法
2017/06/10 Python
python爬虫爬取某站上海租房图片
2018/02/04 Python
Python读取properties配置文件操作示例
2018/03/29 Python
python 接收处理外带的参数方法
2018/12/03 Python
Python实现的读取文件内容并写入其他文件操作示例
2019/04/09 Python
python自动化unittest yaml使用过程解析
2020/02/03 Python
Python matplotlib图例放在外侧保存时显示不完整问题解决
2020/07/28 Python
如何编写python的daemon程序
2021/01/07 Python
英国领先的男装设计师服装购物网站:Mainline Menswear
2018/02/04 全球购物
校园歌咏比赛主持词
2014/03/18 职场文书
比赛主持人开场白
2015/05/29 职场文书
同意转租证明
2015/06/24 职场文书
基层党建工作简报
2015/07/21 职场文书
会计继续教育培训心得体会
2016/01/19 职场文书
Vue.js中v-bind指令的用法介绍
2022/03/13 Vue.js