推荐九段PHP实用功能的代码(邮件是否已被阅读、网页提取关键字、显示Facebook 粉丝数量...)
分类:PHP_Python| 发布:佚名| 查看:296 | 发表时间:2014/12/16
推荐的代码功能如下:
一、查看邮件是否已被阅读、
二、从网页中提取关键字、
三、查找页面上的所有链接、
四、自动转换URL,跳转至超链接、
五、创建数据URL、
六、从服务器上下载 保存一个远程图片、
七、移除Remove Microsoft Word HTML Tag、
八、检测浏览器语言、
九、显示Facebook 粉丝数量
一、查看邮件是否已被阅读
当你在发送邮件时,你或许很想知道该邮件是否被对方已阅读。这里有段非常有趣的代码片段能够显示对方IP地址记录阅读的实际日期和时间。
代码如下:
03 | Header( "Content-Type: image/jpeg" ); |
06 | if (! empty ( $_SERVER [ 'HTTP_CLIENT_IP' ])) |
08 | $ip = $_SERVER [ 'HTTP_CLIENT_IP' ]; |
10 | elseif (! empty ( $_SERVER [ 'HTTP_X_FORWARDED_FOR' ])) |
12 | $ip = $_SERVER [ 'HTTP_X_FORWARDED_FOR' ]; |
16 | $ip = $_SERVER [ 'REMOTE_ADDR' ]; |
21 | $actual_day = date ( 'Y.m.d' , $actual_time ); |
22 | $actual_day_chart = date ( 'd/m/y' , $actual_time ); |
23 | $actual_hour = date ( 'H:i:s' , $actual_time ); |
26 | $browser = $_SERVER [ 'HTTP_USER_AGENT' ]; |
30 | $fh = fopen ( $myFile , 'a+' ); |
31 | $stringData = $actual_day . ' ' . $actual_hour . ' ' . $ip . ' ' . $browser . ' ' . "\r\n" ; |
32 | fwrite( $fh , $stringData ); |
36 | $newimage = ImageCreate(1,1); |
37 | $grigio = ImageColorAllocate( $newimage ,255,255,255); |
39 | ImageDestroy( $newimage ); |
二、从网页中提取关键字
一段伟大的代码片段能够轻松的从网页中提取关键字。
代码如下:
02 | $keywords = $meta [ 'keywords' ]; |
04 | $keywords = explode ( ',' , $keywords ); |
06 | $keywords = array_map ( 'trim' , $keywords ); |
08 | $keywords = array_filter ( $keywords ); |
三、查找页面上的所有链接
使用DOM,你可以轻松从任何页面上抓取链接,代码示例如下:
代码如下:
03 | $dom = new DOMDocument(); |
04 | @ $dom ->loadHTML( $html ); |
07 | $xpath = new DOMXPath( $dom ); |
08 | $hrefs = $xpath ->evaluate( "/html/body//a" ); |
10 | for ( $i = 0; $i < $hrefs ->length; $i ++) { |
11 | $href = $hrefs ->item( $i ); |
12 | $url = $href ->getAttribute( 'href' ); |
四、自动转换URL,跳转至超链接
在WordPress中,如果你想自动转换URL,跳转至超链接页面,你可以利用内置的函数make_clickable()执行此操作。如果你想基于WordPress之外操作该程序,那么你可以参考wp-includes/formatting.php源代码。
代码如下:
01 | function _make_url_clickable_cb( $matches ) { |
08 | if ( in_array( substr ( $url , -1), array ( '.' , ',' , ';' , ':' )) === true ) { |
09 | $ret = substr ( $url , -1); |
10 | $url = substr ( $url , 0, strlen ( $url )-1); |
12 | return $matches [1] . "<a href=\"$url\" rel=\"nofollow\">$url</a>" . $ret ; |
15 | function _make_web_ftp_clickable_cb( $matches ) { |
23 | if ( in_array( substr ( $dest , -1), array ( '.' , ',' , ';' , ':' )) === true ) { |
24 | $ret = substr ( $dest , -1); |
25 | $dest = substr ( $dest , 0, strlen ( $dest )-1); |
27 | return $matches [1] . "<a href=\"$dest\" rel=\"nofollow\">$dest</a>" . $ret ; |
30 | function _make_email_clickable_cb( $matches ) { |
31 | $email = $matches [2] . '@' . $matches [3]; |
32 | return $matches [1] . "<a href=\"mailto:$email\">$email</a>" ; |
35 | function make_clickable( $ret ) { |
38 | $ret = preg_replace_callback( '#([\s>])([\w]+?://[\w\\x80-\\xff\#$%&~/.\-;:=,?@\[\]+]*)#is' , '_make_url_clickable_cb' , $ret ); |
39 | $ret = preg_replace_callback( '#([\s>])((www|ftp)\.[\w\\x80-\\xff\#$%&~/.\-;:=,?@\[\]+]*)#is' , '_make_web_ftp_clickable_cb' , $ret ); |
40 | $ret = preg_replace_callback( '#([\s>])([.0-9a-z_+-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,})#i' , '_make_email_clickable_cb' , $ret ); |
43 | $ret = preg_replace( "#(<a( [^>]+?>|>))<a [^>]+?>([^>]+?)</a></a>#i" , "$1$3</a>" , $ret ); |
五、创建数据URL
数据URL可以直接嵌入到HTML/CSS/JS中,以节省大量的 HTTP请求。 下面的这段代码可利用$file轻松创建数据URL。
代码如下:
1 | function data_uri( $file , $mime ) { |
2 | $contents = file_get_contents ( $file ); |
3 | $base64 = base64_encode ( $contents ); |
4 | echo "data:$mime;base64,$base64" ; |
六、从服务器上下载&保存一个远程图片
当你在搭建网站时,从远程服务器下载某张图片并且将其保存在自己的服务器上,这一操作会经常用到。代码如下:
代码如下:
2 | file_put_contents ( '/images/image.jpg' , $image ); |
七、移除Remove Microsoft Word HTML Tag
当你使用Microsoft Word会创建许多Tag,比如font,span,style,class等。这些标签对于Word本身而言是非常有用的,但是当你从Word粘贴至网页时,你会发现很多无用的Tag。因此,下面的这段代码可帮助你删除所有无用的Word HTML Tag。
代码如下:
01 | function cleanHTML( $html ) { |
08 | $html = ereg_replace ( "<(/)?(font|span|del|ins)[^>]*>" , "" , $html ); |
12 | $html = ereg_replace ( "<([^>]*)(class|lang|style|size|face)=(" [^ "]*" | '[^' ]*'|[^>]+)([^>]*)> "," <\1>", $html ); |
13 | $html = ereg_replace ( "<([^>]*)(class|lang|style|size|face)=(" [^ "]*" | '[^' ]*'|[^>]+)([^>]*)> "," <\1>", $html ); |
八、检测浏览器语言
如果你的网站上有多种语言,那么可以使用这段代码作为默认的语言来检测浏览器语言。该段代码将返回浏览器客户端使用的初始语言。
代码如下:
01 | function get_client_language( $availableLanguages , $default = 'en' ){ |
02 | if (isset( $_SERVER [ 'HTTP_ACCEPT_LANGUAGE' ])) { |
03 | $langs = explode ( ',' , $_SERVER [ 'HTTP_ACCEPT_LANGUAGE' ]); |
05 | foreach ( $langs as $value ){ |
06 | $choice = substr ( $value ,0,2); |
07 | if (in_array( $choice , $availableLanguages )){ |
九、显示Facebook 粉丝数量
如果你的网站或者博客上有内链的Facebook页面,你或许想知道拥有多少粉丝。这段代码将帮助你查看Facebook粉丝数,记住,别忘了在你的页面ID第二行添加该段代码。
代码如下:
2 | $page_id = "YOUR PAGE-ID" ; |
4 | $fans = $xml ->page->fan_count; |