顶部导航开始 -->

超实用九大节省时间的PHP代码片段

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

当你在发送邮件时,你或许很想知道该邮件是否被对方已阅读。这里有段非常有趣的代码片段能够显示对方IP地址记录阅读的实际日期和时间。

view sourceprint?01.

02.error_reporting(0);

03.Header("ContentType: image/jpeg");

04.

05.//Get IP

06.if (!emptyempty($_SERVER['HTTP_CLIENT_IP']))

07.{

08.$ip=$_SERVER['HTTP_CLIENT_IP'];

09.}

10.elseif (!emptyempty($_SERVER['HTTP_X_FORWARDED_FOR']))

11.{

12.$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];

13.}

14.else

15.{

16.$ip=$_SERVER['REMOTE_ADDR'];

17.}

18.

19.//Time

20.$actual_time = time();

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

24.

25.//GET Browser

26.$browser = $_SERVER['HTTP_USER_AGENT'];

27.

28.//LOG

29.$myFile = "log.txt";

30.$fh = fopen($myFile, 'a+');

31.$stringData = $actual_day . ' ' . $actual_hour . ' ' . $ip . ' ' . 

$browser . ' ' ."\r\n";

32.fwrite($fh, $stringData);

33.fclose($fh);

34.

35.//Generate Image (Es. dimesion is 1x1)

36.$newimage = ImageCreate(1,1);

37.$grigio = ImageColorAllocate($newimage,255,255,255);

38.ImageJPEG($newimage);

39.ImageDestroy($newimage);

40.

41.?>

源码

二、从网页中提取关键字

一段伟大的代码片段能够轻松的从网页中提取关键字。

view sourceprint?01.$meta = get_meta_tags('http://www.emoticode.net/');

02.$keywords = $meta['keywords'];

03.// Split keywords

04.$keywords = explode(',', $keywords );

05.// Trim them

06.$keywords = array_map( 'trim', $keywords );

07.// Remove empty values

08.$keywords = array_filter( $keywords );

09.

10.print_r( $keywords );

源码

三、查找页面上的所有链接

使用DOM,你可以轻松从任何页面上抓取链接,代码示例如下:

view sourceprint?01.$html = file_get_contents('http://www.php100.com');

02.

03.$dom = new DOMDocument();

04.@$dom>loadHTML($html);

05.

06.// grab all the on the page

07.$xpath = new DOMXPath($dom);

08.$hrefs = $xpath>evaluate("/html/body//a");

09.

10.for ($i = 0; $i length; $i++) {

11.$href = $hrefs>item($i);

12.$url = $href>getAttribute('href');

13.echo $url.'';

14.}

源码

四、自动转换URL,跳转至超链接

在WordPress中,如果你想自动转换URL,跳转至超链接页面,你可以利用内置的函数make_clickable()执行此操作。如果你想基于WordPress之外操作该程序,那么你可以参考wpincludes/formatting.php源代码。

view sourceprint?01.function _make_url_clickable_cb($matches) {

02.$ret = '';

03.$url = $matches[2];

04.

05.if ( emptyempty($url) )

06.return $matches[0];

07.// removed trailing [.,;:] from URL

08.if ( in_array(substr($url, 1), array('.', ',', ';', ':')) === true ) 

{

09.$ret = substr($url, 1);

10.$url = substr($url, 0, strlen($url)1);

11.}

12.return $matches[1] . "$url" . $ret;

13.}

14.

15.function _make_web_ftp_clickable_cb($matches) {

16.$ret = '';

17.$dest = $matches[2];

18.$dest = 'http://' . $dest;

19.

20.if ( emptyempty($dest) )

21.return $matches[0];

22.// removed trailing [,;:] from URL

23.if ( in_array(substr($dest, 1), array('.', ',', ';', ':')) === true ) 

{

24.$ret = substr($dest, 1);

25.$dest = substr($dest, 0, strlen($dest)1);

26.}

27.return $matches[1] . "$dest" . $ret;

28.}

29.

30.function _make_email_clickable_cb($matches) {

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

32.return $matches[1] . "$email";

33.}

34.

35.function make_clickable($ret) {

36.$ret = ' ' . $ret;

37.// in testing, using arrays here was found to be faster

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>])([.09az_+]+)@(([09az]+\.)+[09az]{2,})#i', 

'_make_email_clickable_cb', $ret);

41.

42.// this one is not in an array because we need it to run last, for cleanup 

of accidental links within links

43.$ret = preg_replace("#(]+?>|>))]+?>([^>]+?)#i", "$1$3",$ret);

44.$ret = trim($ret);

45.return $ret;

46.}

源码

五、创建数据URL

数据URL可以直接嵌入到HTML/CSS/JS中,以节省大量的 HTTP请求。 下面的这段代码可利用$file轻松创建数据URL。

view sourceprint?1.function data_uri($file, $mime) {

2.$contents=file_get_contents($file);

3.$base64=base64_encode($contents);

4.echo "data:$mime;base64,$base64";

5.}

源码

六、从服务器上下载&保存一个远程图片

当你在搭建网站时,从远程服务器下载某张图片并且将其保存在自己的服务器上,这一操作会经常用到。代码如下:

view sourceprint?1.$image = 

file_get_contents('http://www.php100.com/image.jpg');

2.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。

view sourceprint?01.function cleanHTML($html) {

02.///

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

attributes.04./// Designed to get rid of nonstandard Microsoft Word HTML tags.05.///

06.// start by completely removing all unwanted tags

07.

08.$html = 

ereg_replace("]>","",$html);

09.

10.// then run another pass over the html (twice), removing unwanted 

attributes

11.

12.$html = 

ereg_replace("])(class|lang|style|size|face)=("[^"]"|'[^']'|[^>]+)([^>])>","",$html);

13.$html = 

ereg_replace("])(class|lang|style|size|face)=("[^"]"|'[^']'|[^>]+)([^>])>","",$html);

14.

15.return $html

16.}

源码

八、检测浏览器语言

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

view sourceprint?01.function get_client_language($availableLanguages, 

$default='en'){

02.if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {

03.$langs=explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);

04.

05.foreach ($langs as $value){

06.$choice=substr($value,0,2);

07.if(in_array($choice, $availableLanguages)){

08.return $choice;

09.}

10.}

11.}

12.return $default;

13.}

源码

九、显示Facebook 粉丝数量

如果你的网站或者博客上有内链的Facebook页面,你或许想知道拥有多少粉丝。这段代码将帮助你查看Facebook粉丝数,记住,别忘了在你的页面ID第二行添加该段代码。

view sourceprint?1.

2.$page_id = "YOUR PAGEID";

3.$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");

4.$fans = $xml>page>fan_count;

5.echo $fans;

6.?>


自学php博客
请先登陆后发表评论
  • 最新评论
  • 总共0条评论
  • © 2014-2016 zixuephp.cn 版权所有
  • ICP证:皖ICP备16012107号
  • 联系邮箱:510082587@qq.com
  • 交流请加微信:weibobf2899 或扫下方二维码