10 super useful php codes that must be collected

伊谢尔伦
Release: 2016-11-25 13:15:41
Original
955 people have browsed it

As a normal programmer, it is very normal to know several languages. I believe that most programmers can also write a few PHP programs. If you are a WEB programmer, PHP must be a must, even if you do not use it to develop. If you have ever worked on a large software project, you must have some understanding of its syntax.

Although PHP is often criticized, belittled, and made fun of, facts have proven that PHP is the most used programming language in website development in the world. The biggest disadvantage of PHP is that it is too simple, the syntax is not rigorous, and the framework system is very weak, but this is also its biggest advantage. An ordinary person with a bit of programming background can start developing web applications in just half a day of learning PHP.

Someone on the Internet summarized the characteristics of several programming languages, and I think it makes sense:

PHP is: Quick and Dirty
Java is: Beauty and Slowly
Ruby is: Quick and Beauty
python is: Quick and Simple

During the popularity of PHP, many practical PHP code snippets have been summarized on the Internet. These code snippets can be used by pasting them in when you encounter similar problems. They are very efficient and save time and effort. Putting the excellent codes summarized by these senior programmers into your own knowledge base is a good habit of a programmer who is good at learning.

1. Blacklist filtering

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 'this is not spam';
Copy after login
ab:3
dog:3
cat:2
monkey:2
Copy after login

2. Random color generator

function randomColor() { 
    $str = '#'; 
    for($i = 0 ; $i < 6 ; $i++) { 
        $randNum = rand(0 , 15); 
        switch ($randNum) { 
            case 10: $randNum = &#39;A&#39;; break; 
            case 11: $randNum = &#39;B&#39;; break; 
            case 12: $randNum = &#39;C&#39;; break; 
            case 13: $randNum = &#39;D&#39;; break; 
            case 14: $randNum = &#39;E&#39;; break; 
            case 15: $randNum = &#39;F&#39;; break; 
        } 
        $str .= $randNum; 
    } 
    return $str; 
} 
$color = randomColor();
Copy after login

3. Download files from the network

set_time_limit(0); 
// Supports all file types 
// URL Here: 
$url = &#39;http://somsite.com/some_video.flv&#39;; 
$pi = pathinfo($url); 
$ext = $pi[&#39;extension&#39;]; 
$name = $pi[&#39;filename&#39;]; 
// 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, and free up system resources 
curl_close($ch); 
$saveFile = $name.&#39;.&#39;.$ext; 
if(preg_match("/[^0-9a-z._-]/i", $saveFile)) 
    $saveFile = md5(microtime(true)).&#39;.&#39;.$ext; 
$handle = fopen($saveFile, &#39;wb&#39;); 
fwrite($handle, $opt); 
fclose($handle);
Copy after login

4. Alexa/Google Page Rank

function page_rank($page, $type = &#39;alexa&#39;){ 
    switch($type){ 
        case &#39;alexa&#39;: 
            $url = &#39;http://alexa.com/siteinfo/&#39;; 
            $handle = fopen($url.$page, &#39;r&#39;); 
        break; 
        case &#39;google&#39;: 
            $url = &#39;http://google.com/search?client=navclient-auto&ch=6-1484155081&features=Rank&q=info:&#39;; 
            $handle = fopen($url.&#39;http://&#39;.$page, &#39;r&#39;); 
        break; 
    } 
    $content = stream_get_contents($handle); 
    fclose($handle); 
    $content = preg_replace("~(n|t|ss+)~",&#39;&#39;, $content); 
    switch($type){ 
        case &#39;alexa&#39;: 
            if(preg_match(&#39;~<div class="data (down|up)"><img.+?>(.+?) </div>~im&#39;,$content,$matches)){ 
                return $matches[2]; 
            }else{ 
                return FALSE; 
            } 
        break; 
        case &#39;google&#39;: 
            $rank = explode(&#39;:&#39;,$content); 
            if($rank[2] != &#39;&#39;) 
                return $rank[2]; 
            else 
                return FALSE; 
        break; 
        default: 
            return FALSE; 
        break; 
    } 
} 
// Alexa Page Rank: 
echo &#39;Alexa Rank: &#39;.page_rank(&#39;techug.com&#39;); 
echo &#39;
&#39;; 
// Google Page Rank 
echo &#39;Google Rank: &#39;.page_rank(&#39;techug.com&#39;, &#39;google&#39;);
Copy after login

5. Forced file download

$filename = $_GET[&#39;file&#39;]; //Get the fileid from the URL 
// Query the file ID 
$query = sprintf("SELECT * FROM tableName WHERE id = &#39;%s&#39;",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[&#39;FileName&#39;]).";"); 
    header("Content-Transfer-Encoding: binary"); 
    header("Content-Length: ".filesize($row[&#39;FileName&#39;])); 
    @readfile($row[&#39;FileName&#39;]); 
    exit(0); 
}else{ 
    header("Location: /"); 
    exit; 
}
Copy after login

6. Via Email Display the user's Gravatar avatar

$gravatar_link = &#39;http://www.gravatar.com/avatar/&#39; . md5($comment_author_email) . &#39;?s=32&#39;;
  echo &#39;<img src="&#39; . $gravatar_link . &#39;" />&#39;;
Copy after login

7. Get the number of RSS subscriptions through cURL

$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,&#39;https://feedburner.google.com/api/awareness/1.0/GetFeedData?id=7qkrmib4r9rscbplq5qgadiiq4&#39;);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,2);
$content = curl_exec($ch);
$subscribers = get_match(&#39;/circulation="(.*)"/isU&#39;,$content);
curl_close($ch);
Copy after login

八、时间差异计算函数

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] &#39;ago&#39; ";
}
Copy after login

九、裁剪图片

$filename= "test.jpg";
list($w, $h, $type, $attr) = getimagesize($filename);
$src_im = imagecreatefromjpeg($filename);
$src_x = &#39;0&#39;;   // begin x
$src_y = &#39;0&#39;;   // begin y
$src_w = &#39;100&#39;; // width
$src_h = &#39;100&#39;; // height
$dst_x = &#39;0&#39;;   // destination x
$dst_y = &#39;0&#39;;   // 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);
Copy after login

十、检查网站是否宕机

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";
Copy after login


Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template