Rumah pembangunan bahagian belakang tutorial php php:总结一些实用的自定义函数

php:总结一些实用的自定义函数

Jun 26, 2017 am 09:48 AM
php fungsi ringkaskan praktikal Sesuaikan

虽然PHP自带的函数库很强大,但是在日常很多情况下,我们也还得自己写自定义的函数去实现某些功能与需求。下面收集了一些比较实用的、解决一些常见需求的自定义函数,比如将网址字符串转换成超级链接、列出目录内容、验证邮件地址等等

1. PHP可阅读随机字符串

此代码将创建一个可阅读的字符串,使其更接近词典中的单词,实用且具有密码验证功能。

function readable_random_string($length = 6){
   $conso=array("b","c","d","f","g","h","j","k","l",
   "m","n","p","r","s","t","v","w","x","y","z");
   $vocal=array("a","e","i","o","u");
   $password="";
   srand ((double)microtime()*1000000);
   $max = $length/2;
   for($i=1; $i<=$max; $i++)
   {
   $password.=$conso[rand(0,19)];
   $password.=$vocal[rand(0,4)];
   }
   return $password;
}
Salin selepas log masuk

2. PHP生成一个随机字符串

如果不需要可阅读的字符串,使用此函数替代,即可创建一个随机字符串,作为用户的随机密码等。

function generate_rand($l){
 $c= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
 srand((double)microtime()*1000000);
 for($i=0; $i < $l; $i++) {
     $rand.= $c[rand()%strlen($c)];
 }
 return $rand;
}
Salin selepas log masuk

3. PHP编码电子邮件地址

使用此代码,可以将任何电子邮件地址编码为 html 字符实体,以防止被垃圾邮件程序收集。

function encode_email($email=&#39;info@domain.com&#39;, $linkText=&#39;Contact Us&#39;, $attrs =&#39;class="emailencoder"&#39; )
 {
     // remplazar aroba y puntos
     $email = str_replace(&#39;@&#39;, &#39;@&#39;, $email);
     $email = str_replace(&#39;.&#39;, &#39;.&#39;, $email);
     $email = str_split($email, 5); 
  
     $linkText = str_replace(&#39;@&#39;, &#39;@&#39;, $linkText);
     $linkText = str_replace(&#39;.&#39;, &#39;.&#39;, $linkText);
     $linkText = str_split($linkText, 5); 
  
     $part1 = &#39;<、a href="ma&#39;;
     $part2 = &#39;ilto:&#39;;
     $part3 = &#39;" &#39;. $attrs .&#39; >&#39;;
     $part4 = &#39;<、/a>&#39;; 
  
     $encoded = &#39;<、script type="text/javascript">&#39;;
     $encoded .= "document.write(&#39;$part1&#39;);";
     $encoded .= "document.write(&#39;$part2&#39;);";
     foreach($email as $e)
     {
             $encoded .= "document.write(&#39;$e&#39;);";
     }
     $encoded .= "document.write(&#39;$part3&#39;);";
     foreach($linkText as $l)
     {
             $encoded .= "document.write(&#39;$l&#39;);";
     }
     $encoded .= "document.write(&#39;$part4&#39;);";
     $encoded .= &#39;<、/script>&#39;; 
  
     return $encoded;
 }
Salin selepas log masuk

4. PHP验证邮件地址

电子邮件验证也许是中最常用的网页表单验证,此代码除了验证电子邮件地址,也可以选择检查邮件域所属 DNS 中的 MX 记录,使邮件验证功能更加强大。

function is_valid_email($email, $test_mx = false)
{
   if(eregi("^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $email))
       if($test_mx)
       {
           list($username, $domain) = split("@", $email);
           return getmxrr($domain, $mxrecords);
       }
       else
           return true;
   else
       return false;
}
Salin selepas log masuk

5. PHP列出目录内容

function list_files($dir)
{
   if(is_dir($dir))
   {
       if($handle = opendir($dir))
       {
           while(($file = readdir($handle)) !== false)
           {
               if($file != "." && $file != ".." && $file != "Thumbs.db"){                     
               echo &#39;<、a target="_blank" href="&#39;.$dir.$file.&#39;">&#39;.$file.&#39;<、/a><、br>&#39;."\n";                 }
           }
           closedir($handle);
       }
   }
}
Salin selepas log masuk

6. PHP销毁目录

删除一个目录,包括它的内容。

function destroyDir($dir, $virtual = false)
{
   $ds = DIRECTORY_SEPARATOR;
   $dir = $virtual ? realpath($dir) : $dir;
   $dir = substr($dir, -1) == $ds ? substr($dir, 0, -1) : $dir;
   if (is_dir($dir) && $handle = opendir($dir))
   {
       while ($file = readdir($handle))
       {
           if ($file == &#39;.&#39; || $file == &#39;..&#39;)
           {
               continue;
           }
           elseif (is_dir($dir.$ds.$file))
           {
               destroyDir($dir.$ds.$file);
           }
           else
           {
               unlink($dir.$ds.$file);
           }
       }
       closedir($handle);
       rmdir($dir);
       return true;
   }
   else
   {
       return false;
   }
}
Salin selepas log masuk

7. PHP解析 JSON 数据

与大多数流行的 Web 服务如 twitter 通过开放 API 来提供数据一样,它总是能够知道如何解析 API 数据的各种传送格式,包括 JSON,XML 等等。

$json_string=&#39;{"id":1,"name":"foo","email":"foo@foobar.com","interest":["wordpress","php"]} &#39;;
$obj=json_decode($json_string);
echo $obj->name; //prints foo
echo $obj->interest[1]; //prints php
Salin selepas log masuk

8. PHP解析 XML 数据

//xml string
 $xml_string="
 <、users>
 <、user id=&#39;398&#39;>
 <、name>Foo<、/name>
 <、email>foo@bar.com<、/name>
 <、/user>
 <、user id=&#39;867&#39;>
 <、name>Foobar<、/name>
 <、email>foobar@foo.com<、/name>
 <、/user>
 <、/users>";
  
 //load the xml string using simplexml
 $xml = simplexml_load_string($xml_string);
  
 //loop through the each node of user
 foreach ($xml->user as $user)
 {
     //access attribute
     echo $user[&#39;id&#39;], &#39; &#39;;
     //subnodes are accessed by -> operator
     echo $user->name, &#39; &#39;;
     echo $user->email, &#39;<、br />&#39;;
 }
Salin selepas log masuk

9. PHP创建日志缩略名

创建用户友好的日志缩略名。

function create_slug($string){
   $slug=preg_replace(&#39;/[^A-Za-z0-9-]+/&#39;, &#39;-&#39;, $string);
   return $slug;
}
Salin selepas log masuk

10. PHP获取客户端真实 IP 地址

该函数将获取用户的真实 IP 地址,即便他使用代理服务器。

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;
}
Salin selepas log masuk

11. PHP强制性文件下载

为用户提供强制性的文件下载功能。

function force_download($file)
{
   if ((isset($file))&&(file_exists($file))) {
       header("Content-length: ".filesize($file));
       header(&#39;Content-Type: application/octet-stream&#39;);
       header(&#39;Content-Disposition: attachment; filename="&#39; . $file . &#39;"&#39;);
       readfile("$file");
   }
   else {
       echo "No file selected";
   }
}
Salin selepas log masuk

Atas ialah kandungan terperinci php:总结一些实用的自定义函数. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

7 Fungsi PHP Saya Menyesal Saya Tidak Tahu Sebelum ini 7 Fungsi PHP Saya Menyesal Saya Tidak Tahu Sebelum ini Nov 13, 2024 am 09:42 AM

Jika anda seorang pembangun PHP yang berpengalaman, anda mungkin merasakan bahawa anda telah berada di sana dan telah melakukannya. Anda telah membangunkan sejumlah besar aplikasi, menyahpenyahpepijat berjuta-juta baris kod dan mengubah suai sekumpulan skrip untuk mencapai op

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Apr 05, 2025 am 12:04 AM

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Feb 07, 2025 am 11:57 AM

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

Program PHP untuk mengira vokal dalam rentetan Program PHP untuk mengira vokal dalam rentetan Feb 07, 2025 pm 12:12 PM

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Terangkan pengikatan statik lewat dalam php (statik: :). Terangkan pengikatan statik lewat dalam php (statik: :). Apr 03, 2025 am 12:04 AM

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

Apakah kaedah Magic PHP (__construct, __destruct, __call, __get, __set, dll) dan menyediakan kes penggunaan? Apakah kaedah Magic PHP (__construct, __destruct, __call, __get, __set, dll) dan menyediakan kes penggunaan? Apr 03, 2025 am 12:03 AM

Apakah kaedah sihir PHP? Kaedah sihir PHP termasuk: 1. \ _ \ _ Membina, digunakan untuk memulakan objek; 2. \ _ \ _ Destruct, digunakan untuk membersihkan sumber; 3. \ _ \ _ Call, mengendalikan panggilan kaedah yang tidak wujud; 4. \ _ \ _ Mendapatkan, melaksanakan akses atribut dinamik; 5. \ _ \ _ Set, melaksanakan tetapan atribut dinamik. Kaedah ini secara automatik dipanggil dalam situasi tertentu, meningkatkan fleksibiliti dan kecekapan kod.

See all articles