Heim > Backend-Entwicklung > PHP-Tutorial > 46 sehr nützliche PHP-Code-Snippets (1)

46 sehr nützliche PHP-Code-Snippets (1)

黄舟
Freigeben: 2023-03-03 18:20:01
Original
1564 Leute haben es durchsucht

Es ist immer gut, beim Schreiben von Code ein magisches Werkzeug zu haben! Hier ist eine Sammlung von über 40 PHP-Codefragmenten, die Sie bei der Entwicklung von PHP-Projekten unterstützen.

Diese PHP-Snippets sind auch für PHP-Anfänger sehr hilfreich und sehr einfach zu erlernen~

SMS senden

Beim Arbeiten Web- oder Mobilanwendungen entwickeln stoßen wir oft auf die Notwendigkeit, SMS an Benutzer zu senden, sei es zum Anmelden oder zum Versenden von Informationen. Der folgende PHP-Code implementiert die Funktion des SMS-Versands.

Um SMS in einer beliebigen Sprache zu versenden, ist ein SMS-Gateway erforderlich. Die meisten SMS stellen eine API bereit, hier wird MSG91 als SMS-Gateway verwendet.

[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);
}
Nach dem Login kopieren

Darunter erfordert „$authKey = „XXXXXXXXXXXX“;“ die Eingabe Ihres Passworts und „$senderId = „IKOONK“;“ erfordert die Eingabe Ihrer SenderID. Bei der Eingabe einer Mobiltelefonnummer müssen Sie die Landesvorwahl angeben (z. B. 1 für die USA, 91 für Indien).

Syntax:

$message = "Hello World";

$mobile = "918112998787";

send_sms($mobile,$message);

?>

2. Verwenden Sie Mandrill zum Senden von E-Mails

Mandrill ist ein leistungsstarker SMTP-Anbieter. Entwickler neigen dazu, für eine bessere Posteingangszustellung einen Drittanbieter-SMTP-Anbieter zu nutzen.

In der folgenden Funktion müssen Sie „Mandrill.php“ im selben Ordner wie eine PHP-Datei ablegen, damit Sie TA zum Versenden von E-Mails verwenden können.

[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);
}
Nach dem Login kopieren

$apikey = 'XXXXXXXXXX'; //geben Sie hier Ihren API-Schlüssel an"Hier müssen Sie Ihren API-Schlüssel angeben (von Ihrem Mandrill-Konto). ).

Syntax:

$to = "abc@example.com";

$subject = "Dies ist ein Test-E-Mail“;

$message = „Hello World!“;

send_email($to,$subject,$message);

?>

Um die besten Ergebnisse zu erzielen, folgen Sie am besten Mandrills Tutorial zur DNS-Konfiguration

3. PHP-Funktion: SQL-Injection verhindern

SQL-Injection oder SQLi sind gängige Mittel zum Angriff auf Websites . Mit dem folgenden Code können Sie diese Tools verhindern: >$text = "<script>alert(1)</script>";

$text = clean($text);

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, &#39;UTF-8&#39;);
    }
// return the clean text
    return $output;
}
Nach dem Login kopieren
echo $text;

?>

4. Benutzerstandort ermitteln

Verwenden Sie die folgende Funktion, um die Stadt zu ermitteln, von der aus der Benutzer Ihre Website besucht

[Code]php-Code:

Syntax:

$ip = $_SERVER[ 'REMOTE_ADDR'];

function detect_city($ip) {
         
        $default = &#39;UNKNOWN&#39;;
  
        $curlopt_useragent = &#39;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)&#39;;
         
        $url = &#39;http://ipinfodb.com/ip_locator.php?ip=&#39; . 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         => &#39;http://&#39; . $_SERVER[&#39;HTTP_HOST&#39;],
        );
         
        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(&#39;{<li>City : ([^<]*)</li>}i&#39;, $content, $regs) )  {
            $city = $regs[1];
        }
        if ( preg_match(&#39;{<li>State/Province : ([^<]*)</li>}i&#39;, $content, $regs) )  {
            $state = $regs[1];
        }
  
        if( $city!=&#39;&#39; && $state!=&#39;&#39; ){
          $location = $city . &#39;, &#39; . $state;
          return $location;
        }else{
          return $default; 
        }
         
    }
Nach dem Login kopieren
$ city = discover_city($ip);

echo $city;

?>

5 der Quellcode der Webseite

Verwenden Sie die folgende Funktion, Sie können den HTML-Code jeder Webseite abrufen

[Code]PHP-Code:

Syntax:

$url = "http://blog.koonk.com";

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";
}
}
Nach dem Login kopieren
$source = display_sourcecode($ url);

echo $source;

?>

6. Zählen Sie Benutzer, denen Ihre Facebook-Seite gefällt

[Code]php-Code:

Syntax:

< ;?php

$page = "koonktechnologies";

$count = fb_fan_count($page);

function fb_fan_count($facebook_name)
{
    $data = json_decode(file_get_contents("https://graph.facebook.com/".$facebook_name));
    $likes = $data->likes;
    return $likes;
}
Nach dem Login kopieren
echo $count;

?>

7. Bestimmen Sie die dominante Farbe eines Bildes

[code]php-Code:

8. Whois-Abfrage

Verwenden Sie die folgende Funktion. Erhalten Sie vollständige Details zu jedem Domain-Benutzer

[Code]PHP-Code:

Syntax:
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++)>
Nach dem Login kopieren

$domain = " http://www.blog.koonk.com";

$result = whois_query($domain);

function whois_query($domain) {
  
    // fix the domain name:
    $domain = strtolower(trim($domain));
    $domain = preg_replace(&#39;/^http:\/\//i&#39;, &#39;&#39;, $domain);
    $domain = preg_replace(&#39;/^www\./i&#39;, &#39;&#39;, $domain);
    $domain = explode(&#39;/&#39;, $domain);
    $domain = trim($domain[0]);
  
    // split the TLD from domain name
    $_domain = explode(&#39;.&#39;, $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(&#39;Error: No matching nic server found!&#39;);
    }
  
    $nic_server = $servers[$ext];
  
    $output = &#39;&#39;;
  
    // 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(&#39;Error: Could not connect to &#39; . $nic_server . &#39;!&#39;); }
  
    return $output;
}
Nach dem Login kopieren
print_r($result);

?>

9. E-Mail-Adresse überprüfen

Manchmal gibt der Benutzer beim Ausfüllen eines Formulars auf einer Website möglicherweise eine falsche Eingabe ein E-Mail-Adresse Diese Funktion kann überprüfen, ob die E-Mail-Adresse gültig ist.

[Code]php-Code:

Syntax:

$email = "blog@koonk.com";

$check = is_validemail($email);

function is_validemail($email)
{
$check = 0;
if(filter_var($email,FILTER_VALIDATE_EMAIL))
{
$check = 1;
}
return $check;
}
Nach dem Login kopieren
echo $check;

// Wenn die Ausgabe 1 ist, ist die E-Mail gültig.

?>

10. 获取用户的真实 IP

[代码]php代码:

function getRealIpAddr()  
{  
    if (!emptyempty($_SERVER[&#39;HTTP_CLIENT_IP&#39;]))  
    {  
        $ip=$_SERVER[&#39;HTTP_CLIENT_IP&#39;];  
    }  
    elseif (!emptyempty($_SERVER[&#39;HTTP_X_FORWARDED_FOR&#39;]))  
    //to check ip is pass from proxy  
    {  
        $ip=$_SERVER[&#39;HTTP_X_FORWARDED_FOR&#39;];  
    }  
    else  
    {  
        $ip=$_SERVER[&#39;REMOTE_ADDR&#39;];  
    }  
    return $ip;  
}
Nach dem Login kopieren

语法:

$ip = getRealIpAddr();

echo $ip;

?>

11. 转换 URL:从字符串变成超链接

如果你正在开发论坛,博客或者是一个常规的表单提交,很多时候都要用户访问一个网站。使用这个函数,URL 字符串就可以自动的转换为超链接。

[代码]php代码:

function makeClickableLinks($text) 
{  
 $text = eregi_replace(&#39;(((f|ht){1}tp://)[-a-zA-Z0-9@:%_+.~#?&//=]+)&#39;,  
 &#39;<a href="\1">\1</a>&#39;, $text);  
 $text = eregi_replace(&#39;([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_+.~#?&//=]+)&#39;,  
 &#39;\1<a href="http://\2">\2</a>&#39;, $text);  
 $text = eregi_replace(&#39;([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3})&#39;,  
 &#39;<a href="mailto:\1">\1</a>&#39;, $text);  
   
return $text;
Nach dem Login kopieren

语法:

$text = "This is my first post on http://blog.koonk.com";

$text = makeClickableLinks($text);

echo $text;

?>

12. 阻止多个 IP 访问你的网站

这个代码片段可以方便你禁止某些特定的 IP 地址访问你的网站

[代码]php代码:

if ( !file_exists(&#39;blocked_ips.txt&#39;) ) {
 $deny_ips = array(
  &#39;127.0.0.1&#39;,
  &#39;192.168.1.1&#39;,
  &#39;83.76.27.9&#39;,
  &#39;192.168.1.163&#39;
 );
} else {
 $deny_ips = file(&#39;blocked_ips.txt&#39;);
}
// read user ip adress:
$ip = isset($_SERVER[&#39;REMOTE_ADDR&#39;]) ? trim($_SERVER[&#39;REMOTE_ADDR&#39;]) : &#39;&#39;;
  
// search current IP in $deny_ips array
if ( (array_search($ip, $deny_ips))!== FALSE ) {
 // address is blocked:
 echo &#39;Your IP adress (&#39;.$ip.&#39;) was blocked!&#39;;
 exit;
}
Nach dem Login kopieren

13. 强制性文件下载

如果你需要下载特定的文件而不用另开新窗口,下面的代码片段可以帮助你。

[代码]php代码:

function force_download($file) 
{ 
    $dir      = "../log/exports/"; 
    if ((isset($file))&&(file_exists($dir.$file))) { 
       header("Content-type: application/force-download"); 
       header(&#39;Content-Disposition: inline; filename="&#39; . $dir.$file . &#39;"&#39;); 
       header("Content-Transfer-Encoding: Binary"); 
       header("Content-length: ".filesize($dir.$file)); 
       header(&#39;Content-Type: application/octet-stream&#39;); 
       header(&#39;Content-Disposition: attachment; filename="&#39; . $file . &#39;"&#39;); 
       readfile("$dir$file"); 
    } else { 
       echo "No file selected"; 
    } 
}
Nach dem Login kopieren

语法:

force_download("image.jpg");

?>

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 = &#39;&#39;,$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 &#39;The zip archive contains &#39;,$zip->numFiles,&#39; files with a status of &#39;,$zip->status;  
           
        //close the zip -- done!  
        $zip->close();  
           
        //check to make sure the file exists  
        return file_exists($destination);  
    }  
    else  
    {  
        return false;  
    }  
}
Nach dem Login kopieren

语法:

$files=array('file1.jpg', 'file2.jpg', 'file3.gif');

create_zip($files, 'myzipfile.zip', true);

?>

 以上就是46 个非常有用的 PHP 代码片段(一)的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage