博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
超实用的PHP代码片段
阅读量:5049 次
发布时间:2019-06-12

本文共 5939 字,大约阅读时间需要 19 分钟。

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?
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
);
     
?>

  

  二、从网友中提取关键字

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

1
2
3
4
5
6
7
8
9
10
$meta
= get_meta_tags(
''
);
$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,你可以轻松从任何页面上抓取链接,代码示例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$html
=
file_get_contents
(
''
);
 
$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源代码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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
=
''
.
$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。

1
2
3
4
5
function
data_uri(
$file
,
$mime
) {
  
$contents
=
file_get_contents
(
$file
);
  
$base64
=
base64_encode
(
$contents
);
  
echo
"data:$mime;base64,$base64"
;
}

  

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

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

1
2
$image
=
file_get_contents
(
''
);
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。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
}

  

  八、检测浏览器语言

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

1
2
3
4
5
6
7
8
9
10
11
12
13
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第二行添加该段代码。

1
2
3
4
5
6
<?php
    
$page_id
=
"YOUR PAGE-ID"
;
    
$xml
= @simplexml_load_file(
""
.
$page_id
.
""
)
or
die
(
"a lot"
);
    
$fans
=
$xml
->page->fan_count;
    
echo
$fans
;
?>

  

  英文出自: 

转载于:https://www.cnblogs.com/rrsina/p/4022362.html

你可能感兴趣的文章
日志框架--(一)基础篇
查看>>
Java设计模式之原型模式
查看>>
Spring学习(四)-----Spring Bean引用同xml和不同xml bean的例子
查看>>
哲理故事与管理之道(20)-用危机激励下属
查看>>
关于源程序到可运行程序的过程
查看>>
wepy的使用
查看>>
转载:mysql数据库密码忘记找回方法
查看>>
scratch少儿编程第一季——06、人在江湖混,没有背景怎么行。
查看>>
面向对象1
查看>>
在ns2.35中添加myevalvid框架
查看>>
【贪心+DFS】D. Field expansion
查看>>
为什么要使用href=”javascript:void(0);”
查看>>
二进制文件的查看和编辑
查看>>
C# Async与Await的使用
查看>>
Mysql性能调优
查看>>
iOS基础-UIKit框架-多控制器管理-实例:qq界面框架
查看>>
javascript学习---BOM
查看>>
IOS-每个程序员的编程之路上都应该看这11本书
查看>>
自定义tabbar(纯代码)
查看>>
extjs fieldset 和 radio
查看>>