Created
December 2, 2013 05:53
-
-
Save bennyzhao/7745682 to your computer and use it in GitHub Desktop.
一些有用的PHP代码片段
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Create Data URI's | |
Data URI’s can be useful for embedding images into HTML/CSS/JS to save on HTTP requests. | |
The following function will create a Data URI based on $file for easier embedding. | |
*/ | |
function data_uri($file, $mime) { | |
$contents=file_get_contents($file); | |
$base64=base64_encode($contents); | |
echo "data:$mime;base64,$base64"; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
侦测浏览器的语言 | |
If your website is multilingual, it can be useful to detect the browser language to use this language as the default. The code below will return the language used by the client’s browser. | |
*/ | |
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; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
提取页面中的关键字 | |
The title said it all: | |
A great code snippet to easily extract meta keywords from any webpage. | |
*/ | |
$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 ); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
显示Facebook的粉丝数量 | |
If you have a Facebook page for your website or blog, you might want to display how many fans you have. This snippet will help you to get your Facebook fan count, in full text. Don’t forget to add your page ID on line 2. | |
*/ | |
<?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; | |
?> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
找出页面中的所有链接 | |
Using the DOM, | |
you can easily grab all links from any webpage. | |
Here’s a working example: | |
*/ | |
$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 />'; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
自动将URL转化成可点击的超链接 | |
In wordpress, if you want to auto convert all URLs in your string into clickable hyperlinks, | |
you can actually do it using the built-in function make_clickable(). | |
If you need to do that outside of wordpress, | |
you can refer to the function’s source code at 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; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
检查email是否已读 | |
When sending emails, | |
you might want to be able to find out if your email has been read. | |
Here’s a very interesting snippet which log the IP address which read your email, | |
as well as the actual date and time. | |
*/ | |
<? | |
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); | |
?> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
移除微软Word的HTML标签 | |
When used, Microsoft Word creates lots of tags: font, span, style, class… These tags are useful inside Word itself, but when you paste a text from Word into a webpage, you’ll end up with lots of useless tags. Here’s a very handy function to remove all Word HTML tags. | |
*/ | |
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 | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
下载&保存远端的图片到你的服务器 | |
Downloading an image on a remote server and saving it on your own server is useful when building websites, and it’s also very easy to do. The two lines of code below will do it for you. | |
*/ | |
$image = file_get_contents('http://www.url.com/image.jpg'); | |
file_put_contents('/images/image.jpg', $image); //Where to save the image |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment