10 _php tips for Super useful PHP code clips that are worth collecting

Source: Internet
Author: User
Tags curl explode learn php md5 knowledge base

Although PHP is often criticized, being belittled, being a joke, it turns out that PHP is the most widely used programming language in web development around the world. PHP's biggest drawback is too simple, grammar is not rigorous, the framework system is weak, but this is its biggest advantage, a bit of programming background of ordinary people, only need to learn PHP half-day time, you can start to develop Web applications.

Some of the features of several programming languages have been summed up on the internet, and I find it quite reasonable:

Copy Code code as follows:

PHP is: Quick and Dirty
Java is: Beauty and slowly
Ruby is: Quick and Beauty
Python is: Quick and simple

In the popular popularity of PHP, the Internet summed up a lot of practical PHP code snippets, these snippets in when you encounter similar problems, paste the past can be used, very efficient, very time-saving. It is a good habit of a learning programmer to put the good code of these programmers ' predecessors into their knowledge base.

One, blacklist filtration

Copy Code code as follows:

function Is_spam ($text, $file, $split = ': ', $regex = False) {
$handle = fopen ($file, ' RB ');
$contents = Fread ($handle, FileSize ($file));
Fclose ($handle);
$lines = Explode ("n", $contents);
$arr = Array ();
foreach ($lines as $line) {
List ($word, $count) = Explode ($split, $line);
if ($regex)
$arr [$word] = $count;
Else
$arr [Preg_quote ($word)] = $count;
}
Preg_match_all ("~". Implode (' | ', Array_keys ($arr)). " ~ ", $text, $matches);
$temp = Array ();
foreach ($matches [0] as $match) {
if (!in_array ($match, $temp)) {
$temp [$match] = $temp [$match] + 1;
if ($temp [$match] >= $arr [$word])
return true;
}
}
return false;
}

$file = ' spam.txt ';
$str = ' This string has cat, dog word ';
if (Is_spam ($str, $file))
Echo ' This is spam ';
Else
Echo ' is not spam ';
Ab:3
Dog:3
Cat:2
Monkey:2


second, random color generator
Copy Code code as follows:

function Randomcolor () {
$str = ' # ';
for ($i = 0; $i < 6; $i + +) {
$randNum = rand (0, 15);
Switch ($randNum) {
Case: $randNum = ' A '; Break
Case one: $randNum = ' B '; Break
Case: $randNum = ' C '; Break
Case: $randNum = ' D '; Break
Case: $randNum = ' E '; Break
Case: $randNum = ' F '; Break
}
$str. = $randNum;
}
return $str;
}
$color = Randomcolor ();

third, download files from the network
Copy Code code as follows:

Set_time_limit (0);
Supports all file types
URL here:
$url = ' http://somsite.com/some_video.flv ';
$pi = PathInfo ($url);
$ext = $pi [' extension '];
$name = $pi [' filename '];

Create a new CURL resource
$ch = Curl_init ();

Set URL and other appropriate options
curl_setopt ($ch, Curlopt_url, $url);
curl_setopt ($ch, Curlopt_header, false);
curl_setopt ($ch, Curlopt_binarytransfer, true);
curl_setopt ($ch, Curlopt_autoreferer, true);
curl_setopt ($ch, curlopt_followlocation, true);
curl_setopt ($ch, Curlopt_returntransfer, true);

Grab URL and pass it to the browser
$opt = curl_exec ($ch);

Close CURL Resource.
Curl_close ($ch);

$saveFile = $name. $ext;
if (Preg_match ("/[^0-9a-z._-]/i", $saveFile))
$saveFile = MD5 (Microtime (TRUE)). $ext;

$handle = fopen ($saveFile, ' WB ');
Fwrite ($handle, $opt);
Fclose ($handle);
Four, Alexa/google Page Rank

function Page_rank ($page, $type = ' Alexa ') {
Switch ($type) {
Case ' Alexa ':
$url = ' http://alexa.com/siteinfo/';
$handle = fopen ($url. $page, ' R ');
Break
Case ' Google ':
$url = ' http://google.com/search?client=navclient-auto&ch=6-1484155081&features=Rank&q=info: ';
$handle = fopen ($url. ' http://'. $page, ' R ');
Break
}
$content = Stream_get_contents ($handle);
Fclose ($handle);
$content = Preg_replace ("~ (n|t|ss+) ~", ", $content);
Switch ($type) {
Case ' Alexa ':
if (Preg_match (' ~<div class= data (down|up) > (. +?) </div>~im ', $content, $matches)) {
return $matches [2];
}else{
return FALSE;
}
Break
Case ' Google ':
$rank = Explode (': ', $content);
if ($rank [2]!= ')
return $rank [2];
Else
return FALSE;
Break
Default
return FALSE;
Break
}
}
Alexa Page Rank:
Echo ' Alexa Rank: '. Page_rank (' techug.com ');
Echo '
';
Google Page Rank
Echo ' Google Rank: '. Page_rank (' techug.com ', ' Google ');

V. Force download files

Copy Code code as follows:

$filename = $_get[' file ']; Get the Fileid from the URL
Query the file ID
$query = sprintf ("SELECT * FROM tablename WHERE id = '%s '", Mysql_real_escape_string ($filename));
$sql = mysql_query ($query);
if (mysql_num_rows ($sql) > 0) {
$row = Mysql_fetch_array ($sql);
Set some headers
Header ("Pragma:public");
Header ("expires:0");
Header ("Cache-control:must-revalidate, Post-check=0, pre-check=0");
Header ("Content-type:application/force-download");
Header ("Content-type:application/octet-stream");
Header ("Content-type:application/download");
Header ("content-disposition:attachment; Filename= ". basename ($row [' FileName ']).";
Header ("Content-transfer-encoding:binary");
Header ("Content-length:" FileSize ($row [' FileName ']));

@readfile ($row [' FileName ']);
Exit (0);
}else{
Header ("Location:/");
Exit
}


six, by email to display the user's Gravatar avatar
Copy Code code as follows:

$gravatar _link = ' http://www.gravatar.com/avatar/'. MD5 ($comment _author_email). ' S=32 ';
Echo ' ';

Vii. Get the number of RSS subscriptions through Curl
Copy Code code as follows:

$ch = Curl_init ();
curl_setopt ($ch, Curlopt_url, ' https://feedburner.google.com/api/awareness/1.0/GetFeedData?id=7qkrmib4r9rscbplq5qgadiiq4 ');
curl_setopt ($ch, curlopt_returntransfer,1);
curl_setopt ($ch, curlopt_connecttimeout,2);
$content = curl_exec ($ch);
$subscribers = Get_match ('/circulation= ' (. *) "/isu", $content);
Curl_close ($ch);

Time difference calculation function
Copy Code code as follows:

Function ago ($time)
{
$periods = Array ("Second", "Minute", "Hour", "Day", "Week", "Month", "year", "decade");
$lengths = Array ("60", "60", "24", "7", "4.35", "12", "10");

$now = time ();

$difference = $now-$time;
$tense = "Ago";

for ($j = 0; $difference >= $lengths [$j] && $j < count ($lengths)-1; $j + +) {
$difference/= $lengths [$j];
}

$difference = round ($difference);

if ($difference!= 1) {
$periods [$j].= "s";
}

Return "$difference $periods [$j] ' ago '";
}


Nine, crop pictures
Copy Code code as follows:

$filename = "Test.jpg";
List ($w, $h, $type, $attr) = getimagesize ($filename);
$src _im = Imagecreatefromjpeg ($filename);

$src _x = ' 0 '; Begin X
$src _y = ' 0 '; Begin Y
$src _w = ' 100 '; Width
$src _h = ' 100 '; Height
$DST _x = ' 0 '; Destination X
$dst _y = ' 0 '; Destination y

$DST _im = Imagecreatetruecolor ($src _w, $src _h);
$white = Imagecolorallocate ($dst _im, 255, 255, 255);
Imagefill ($dst _im, 0, 0, $white);

Imagecopy ($dst _im, $src _im, $dst _x, $dst _y, $src _x, $src _y, $src _w, $src _h);

Header ("Content-type:image/png");
Imagepng ($dst _im);
Imagedestroy ($dst _im);


10, check whether the site is down
Copy Code code as follows:

function Visit ($url) {
$agent = "mozilla/4.0" (compatible; MSIE 5.01; Windows NT 5.0) "; $ch =curl_init ();
curl_setopt ($ch, Curlopt_url, $url);
curl_setopt ($ch, curlopt_useragent, $agent);
curl_setopt ($ch, Curlopt_returntransfer, 1);
curl_setopt ($ch, Curlopt_verbose,false);
curl_setopt ($ch, Curlopt_timeout, 5);
curl_setopt ($ch, Curlopt_ssl_verifypeer, FALSE);
curl_setopt ($ch, curlopt_sslversion,3);
curl_setopt ($ch, Curlopt_ssl_verifyhost, FALSE);
$page =curl_exec ($ch);
echo Curl_error ($ch);
$httpcode = Curl_getinfo ($ch, Curlinfo_http_code);
Curl_close ($ch);
if ($httpcode >=200 && $httpcode <300) return true;
else return false;
}
if (Visit ("http://www.google.com"))
echo "Website OK". n ";
Else
echo "Website down";

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.