Home >Backend Development >PHP Tutorial >46 Very Useful PHP Code Snippets (1)
It’s always good to have a magical tool when writing code! Here is a collection of 40+ php code snippets to help you develop PHP projects.
These PHP snippets are also very helpful for PHP beginners and are very easy to learn. Let’s start learning~
1. Send SMS
When developing web or mobile applications, you often encounter the need to send SMS to users , either for login reasons or to send information. The following PHP code implements the function of sending SMS.
In order to send SMS in any language, an SMS gateway is required. Most SMS will provide an API, here MSG91 is used as the SMS gateway.
[Code]php code:
function send_sms($mobile,$msg) { $authKey = "XXXXXXXXXXX"; date_default_timezone_set("Asia/Kolkata"); $date = strftime("%Y-%m-%d %H:%M:%S"); //Multiple mobiles numbers separated by comma $mobileNumber = $mobile; //Sender ID,While using route4 sender id should be 6 characters long. $senderId = "IKOONK"; //Your message to send, Add URL encoding here. $message = urlencode($msg); //Define route $route = "template"; //Prepare you post parameters $postData = array( 'authkey' => $authKey, 'mobiles' => $mobileNumber, 'message' => $message, 'sender' => $senderId, 'route' => $route ); //API URL $url="https://control.msg91.com/sendhttp.php"; // init the resource $ch = curl_init(); curl_setopt_array($ch, array( CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => $postData //,CURLOPT_FOLLOWLOCATION => true )); //Ignore SSL certificate verification curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); //get response $output = curl_exec($ch); //Print error if any if(curl_errno($ch)) { echo 'error:' . curl_error($ch); } curl_close($ch); }
Among them, "$authKey = "XXXXXXXXXXX";" requires you to enter your password, and "$senderId = "IKOONK";" requires you to enter your SenderID. When entering a mobile number, you need to specify the country code (for example, 1 for the United States, 91 for India).
Syntax:
e1b0111affb0236716bf7a07bfa48dc7
2. Use mandrill Send Email
Mandrill is a powerful SMTP provider. Developers tend to use a third-party SMTP provider for better inbox delivery.
In the following function, you need to put "Mandrill.php" in the same folder as a PHP file, so that you can use TA to send emails.
[Code]php code:
function send_email($to_email,$subject,$message1) { require_once 'Mandrill.php'; $apikey = 'XXXXXXXXXX'; //specify your api key here $mandrill = new Mandrill($apikey); $message = new stdClass(); $message->html = $message1; $message->text = $message1; $message->subject = $subject; $message->from_email = "blog@koonk.com";//Sender Email $message->from_name = "KOONK";//Sender Name $message->to = array(array("email" => $to_email)); $message->track_opens = true; $response = $mandrill->messages->send($message); }
$apikey = 'XXXXXXXXXX'; //specify your api key here"Here you need to specify your API key (obtained from Mandrill account).
Syntax:
< ;?php
$to = "abc@example.com";
$subject = "This is a test email";
$message = "Hello World!";
send_email($to,$subject, $message);
?>
In order to achieve the best results, it is best to follow Mandrill’s tutorial to configure DNS.
3. PHP function: prevent SQL injection
SQL injection or SQLi are common means of attacking websites. , using the code below can help you prevent these tools.
[code]php code:
function clean($input) { if (is_array($input)) { foreach ($input as $key => $val) { $output[$key] = clean($val); // $output[$key] = $this->clean($val); } } else { $output = (string) $input; // if magic quotes is on then use strip slashes if (get_magic_quotes_gpc()) { $output = stripslashes($output); } // $output = strip_tags($output); $output = htmlentities($output, ENT_QUOTES, 'UTF-8'); } // return the clean text return $output; }
Syntax:
e7146280834bc229a41051bcd36fa435alert(1)2cacc6d41bbb37262a98f745aa00fbf0 ";
$text = clean($text);
echo $text;
?>
4. Detect user location
Use the following function to detect the city from which the user visits your website
[Code]php code:
function detect_city($ip) { $default = 'UNKNOWN'; $curlopt_useragent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)'; $url = 'http://ipinfodb.com/ip_locator.php?ip=' . urlencode($ip); $ch = curl_init(); $curl_opt = array( CURLOPT_FOLLOWLOCATION => 1, CURLOPT_HEADER => 0, CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $curlopt_useragent, CURLOPT_URL => $url, CURLOPT_TIMEOUT => 1, CURLOPT_REFERER => 'http://' . $_SERVER['HTTP_HOST'], ); curl_setopt_array($ch, $curl_opt); $content = curl_exec($ch); if (!is_null($curl_info)) { $curl_info = curl_getinfo($ch); } curl_close($ch); if ( preg_match('{<li>City : ([^<]*)</li>}i', $content, $regs) ) { $city = $regs[1]; } if ( preg_match('{<li>State/Province : ([^<]*)</li>}i', $content, $regs) ) { $state = $regs[1]; } if( $city!='' && $state!='' ){ $location = $city . ', ' . $state; return $location; }else{ return $default; } }
Syntax:
75b9da6e4a43cc9ff71fb65b08a2d96d
5. Get the source code of the Web page
Use the following function to get the HTML code of any Web page
[code]php code:
function display_sourcecode($url) { $lines = file($url); $output = ""; foreach ($lines as $line_num => $line) { // loop thru each line and prepend line numbers $output.= "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br>\n"; } }
Syntax:
9146c9215c911218ede08e69db98db2b
6. Count likes for your Facebook page User
[Code]php code:
function fb_fan_count($facebook_name) { $data = json_decode(file_get_contents("https://graph.facebook.com/".$facebook_name)); $likes = $data->likes; return $likes; }
Syntax:
85941b6a736c7d057c12cd286c7da75f
7. Determine the dominant color of any image
[code]php code:
function dominant_color($image) { $i = imagecreatefromjpeg($image); for ($x=0;$x<imagesx($i);$x++) {="" for="" ($y="0;$y<imagesy($i);$y++)" $rgb="imagecolorat($i,$x,$y);" $r="($rgb">> 16) & 0xFF; $g = ($rgb >> & 0xFF; $b = $rgb & 0xFF; $rTotal += $r; $gTotal += $g; $bTotal += $b; $total++; } } $rAverage = round($rTotal/$total); $gAverage = round($gTotal/$total); $bAverage = round($bTotal/$total); }</imagesx($i);$x++)>
8. Whois query
Use the function below to get complete details of any domain user
[code]php code:
function whois_query($domain) { // fix the domain name: $domain = strtolower(trim($domain)); $domain = preg_replace('/^http:\/\//i', '', $domain); $domain = preg_replace('/^www\./i', '', $domain); $domain = explode('/', $domain); $domain = trim($domain[0]); // split the TLD from domain name $_domain = explode('.', $domain); $lst = count($_domain)-1; $ext = $_domain[$lst]; // You find resources and lists // like these on wikipedia: // // http://de.wikipedia.org/wiki/Whois // $servers = array( "biz" => "whois.neulevel.biz", "com" => "whois.internic.net", "us" => "whois.nic.us", "coop" => "whois.nic.coop", "info" => "whois.nic.info", "name" => "whois.nic.name", "net" => "whois.internic.net", "gov" => "whois.nic.gov", "edu" => "whois.internic.net", "mil" => "rs.internic.net", "int" => "whois.iana.org", "ac" => "whois.nic.ac", "ae" => "whois.uaenic.ae", "at" => "whois.ripe.net", "au" => "whois.aunic.net", "be" => "whois.dns.be", "bg" => "whois.ripe.net", "br" => "whois.registro.br", "bz" => "whois.belizenic.bz", "ca" => "whois.cira.ca", "cc" => "whois.nic.cc", "ch" => "whois.nic.ch", "cl" => "whois.nic.cl", "cn" => "whois.cnnic.net.cn", "cz" => "whois.nic.cz", "de" => "whois.nic.de", "fr" => "whois.nic.fr", "hu" => "whois.nic.hu", "ie" => "whois.domainregistry.ie", "il" => "whois.isoc.org.il", "in" => "whois.ncst.ernet.in", "ir" => "whois.nic.ir", "mc" => "whois.ripe.net", "to" => "whois.tonic.to", "tv" => "whois.tv", "ru" => "whois.ripn.net", "org" => "whois.pir.org", "aero" => "whois.information.aero", "nl" => "whois.domain-registry.nl" ); if (!isset($servers[$ext])){ die('Error: No matching nic server found!'); } $nic_server = $servers[$ext]; $output = ''; // connect to whois server: if ($conn = fsockopen ($nic_server, 43)) { fputs($conn, $domain."\r\n"); while(!feof($conn)) { $output .= fgets($conn,128); } fclose($conn); } else { die('Error: Could not connect to ' . $nic_server . '!'); } return $output; }
Syntax:
1e0317b4e9afe4094caa8dee60fff09d
9. Verify email address
Sometimes, when filling out a form on a website, the user may enter an incorrect email address. This function can verify whether the email address is valid.
[Code]php code:
function is_validemail($email) { $check = 0; if(filter_var($email,FILTER_VALIDATE_EMAIL)) { $check = 1; } return $check; }
Syntax:
60044fe8417fc863f96edf96d59841ac
10. 获取用户的真实 IP
[代码]php代码:
function getRealIpAddr() { if (!emptyempty($_SERVER['HTTP_CLIENT_IP'])) { $ip=$_SERVER['HTTP_CLIENT_IP']; } elseif (!emptyempty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy { $ip=$_SERVER['HTTP_X_FORWARDED_FOR']; } else { $ip=$_SERVER['REMOTE_ADDR']; } return $ip; }
语法:
9c089c1b032d5d3e8774c3b562b7d772
11. 转换 URL:从字符串变成超链接
如果你正在开发论坛,博客或者是一个常规的表单提交,很多时候都要用户访问一个网站。使用这个函数,URL 字符串就可以自动的转换为超链接。
[代码]php代码:
function makeClickableLinks($text) { $text = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_+.~#?&//=]+)', '<a href="\1">\1</a>', $text); $text = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_+.~#?&//=]+)', '\1<a href="http://\2">\2</a>', $text); $text = eregi_replace('([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3})', '<a href="mailto:\1">\1</a>', $text); return $text;
语法:
794adf657d97aff47bc7927f295b5895
12. 阻止多个 IP 访问你的网站
这个代码片段可以方便你禁止某些特定的 IP 地址访问你的网站
[代码]php代码:
if ( !file_exists('blocked_ips.txt') ) { $deny_ips = array( '127.0.0.1', '192.168.1.1', '83.76.27.9', '192.168.1.163' ); } else { $deny_ips = file('blocked_ips.txt'); } // read user ip adress: $ip = isset($_SERVER['REMOTE_ADDR']) ? trim($_SERVER['REMOTE_ADDR']) : ''; // search current IP in $deny_ips array if ( (array_search($ip, $deny_ips))!== FALSE ) { // address is blocked: echo 'Your IP adress ('.$ip.') was blocked!'; exit; }
13. 强制性文件下载
如果你需要下载特定的文件而不用另开新窗口,下面的代码片段可以帮助你。
[代码]php代码:
function force_download($file) { $dir = "../log/exports/"; if ((isset($file))&&(file_exists($dir.$file))) { header("Content-type: application/force-download"); header('Content-Disposition: inline; filename="' . $dir.$file . '"'); header("Content-Transfer-Encoding: Binary"); header("Content-length: ".filesize($dir.$file)); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="' . $file . '"'); readfile("$dir$file"); } else { echo "No file selected"; } }
语法:
3a8cb7f761becb9db2e161aa2a765c61
14. 创建 JSON 数据
使用下面的 PHP 片段可以创建 JSON 数据,可以方便你创建移动应用的 Web 服务
$json_data = array ('id'=>1,'name'=>"Mohit");
echo json_encode($json_data);
15. 压缩 zip 文件
使用下面的 PHP 片段可以即时压缩 zip 文件
[代码]php代码:
function create_zip($files = array(),$destination = '',$overwrite = false) { //if the zip file already exists and overwrite is false, return false if(file_exists($destination) && !$overwrite) { return false; } //vars $valid_files = array(); //if files were passed in... if(is_array($files)) { //cycle through each file foreach($files as $file) { //make sure the file exists if(file_exists($file)) { $valid_files[] = $file; } } } //if we have good files... if(count($valid_files)) { //create the archive $zip = new ZipArchive(); if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) { return false; } //add the files foreach($valid_files as $file) { $zip->addFile($file,$file); } //debug //echo 'The zip archive contains ',$zip->numFiles,' files with a status of ',$zip->status; //close the zip -- done! $zip->close(); //check to make sure the file exists return file_exists($destination); } else { return false; } }
语法:
3cb669f4efda051f9550154fbe08f9f1
以上就是46 个非常有用的 PHP 代码片段(一)的内容,更多相关内容请关注PHP中文网(www.php.cn)!