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脚本的10个技巧(1)
Oct 09 PHP
php地址引用(php地址引用的效率问题)
Mar 23 PHP
php.ini修改php上传文件大小限制的方法详解
Jun 17 PHP
CentOS 6.2使用yum安装LAMP以及phpMyadmin详解
Jun 17 PHP
php自动识别文件编码并转换为UTF-8的方法
Jun 12 PHP
PHP中使用json数据格式定义字面量对象的方法
Aug 20 PHP
Laravel 5框架学习之模型、控制器、视图基础流程
Apr 08 PHP
php中static 静态变量和普通变量的区别
Dec 01 PHP
php获取ajax的headers方法与内容实例
Dec 27 PHP
Yii2处理密码加密及验证的方法
May 12 PHP
php弹出提示框的是实例写法
Sep 26 PHP
PHP控制循环操作的时间
Apr 01 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
zend api扩展的php对象的autoload工具
2011/04/18 PHP
php小技巧之过滤ascii控制字符
2014/05/14 PHP
浅析php中json_encode()和json_decode()
2014/05/25 PHP
php实现的mongodb操作类实例
2015/04/03 PHP
PHP常用技巧汇总
2016/03/04 PHP
基于 Swoole 的微信扫码登录功能实现代码
2018/01/15 PHP
asp(javascript)全角半角转换代码 dbc2sbc
2009/08/06 Javascript
javascript中普通函数的使用介绍
2013/12/19 Javascript
node.js正则表达式获取网页中所有链接的代码实例
2014/06/03 Javascript
JavaScript通过字典进行字符串翻译转换的方法
2015/03/19 Javascript
JS代码防止SQL注入的方法(超简单)
2016/04/12 Javascript
JavaScript中自带的 reduce()方法使用示例详解
2016/08/10 Javascript
js前端日历控件(悬浮、拖拽、自由变形)
2017/03/02 Javascript
js实现移动端编辑添加地址【模仿京东】
2017/04/28 Javascript
JavaScript禁止微信浏览器下拉回弹效果
2017/05/16 Javascript
js canvas实现适用于移动端的百分比仪表盘dashboard
2017/07/18 Javascript
node.js中axios使用心得总结
2017/11/29 Javascript
解决LayUI表单获取不到data的问题
2018/08/20 Javascript
[01:18]DOTA2超级联赛专访hanci ForLove淘汰感言曝光
2013/06/04 DOTA
python教程之用py2exe将PY文件转成EXE文件
2014/06/12 Python
Python实现的一个简单LRU cache
2014/09/26 Python
日常整理python执行系统命令的常见方法(全)
2015/10/22 Python
简单了解OpenCV是个什么东西
2017/11/10 Python
Python实现图像去噪方式(中值去噪和均值去噪)
2019/12/18 Python
python golang中grpc 使用示例代码详解
2020/06/03 Python
CSS3中background-clip和background-origin的区别示例介绍
2014/03/10 HTML / CSS
Perfume’s Club澳大利亚官网:西班牙领先的在线美容店
2021/02/01 全球购物
企业车辆管理制度
2014/01/24 职场文书
抗洪抢险事迹材料
2014/05/06 职场文书
幼儿生日活动方案
2014/08/27 职场文书
个人自我剖析材料
2014/09/30 职场文书
车间质检员岗位职责
2015/04/08 职场文书
曾国藩励志经典名言37句,蕴含哲理
2019/10/14 职场文书
导游词之介休绵山
2019/12/31 职场文书
OpenCV-Python直方图均衡化实现图像去雾
2021/06/07 Python
Li list-style-image 图片垂直居中实现方法
2023/05/21 HTML / CSS