cari
Rumahpembangunan bahagian belakangtutorial phpphp函数(加密解密,随机字符串,截取字符串长度,强制下载等)

  1. function encryptdecrypt($key, $string, $decrypt){
  2. if($decrypt){
  3. $decrypted = rtrim(mcrypt_decrypt(mcrypt_rijndael_256, md5($key), base64_decode($string), mcrypt_mode_cbc, md5(md5($key))), "12");
  4. return $decrypted;
  5. }else{
  6. $encrypted = base64_encode(mcrypt_encrypt(mcrypt_rijndael_256, md5($key), $string, mcrypt_mode_cbc, md5(md5($key))));
  7. return $encrypted;
  8. }
  9. }
复制代码

使用方法:

  1. //以下是将字符串“helloweba欢迎您”分别加密和解密
  2. //加密:
  3. echo encryptdecrypt('password', 'helloweba欢迎您',0);
  4. //解密:
  5. echo encryptdecrypt('password', 'z0jax4qmwcf+db5tnbp/xwdum84snrsxvvpxuaca4bk=',1);
复制代码

2、php生成随机字符串

当需要生成一个随机名字,临时密码等字符串时,使用如下函数:

  1. function generaterandomstring($length = 10) {
  2. $characters = '0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz';
  3. $randomstring = '';
  4. for ($i = 0; $i $randomstring .= $characters[rand(0, strlen($characters) - 1)];
  5. }
  6. return $randomstring;
  7. }
复制代码

使用方法:

  1. echo generaterandomstring(20);
复制代码

3、php获取文件扩展名(后缀) 快速获取文件的扩展名即后缀。

  1. function getextension($filename){
  2. $myext = substr($filename, strrpos($filename, '.'));
  3. return str_replace('.','',$myext);
  4. }
复制代码

使用方法:

  1. $filename = '我的文档.doc';
  2. echo getextension($filename);
复制代码

4、php获取文件大小并格式化 获取文件的大小,并且转换成便于阅读的kb,mb等格式。

  1. function formatsize($size) {
  2. $sizes = array(" bytes", " kb", " mb", " gb", " tb", " pb", " eb", " zb", " yb");
  3. if ($size == 0) {
  4. return('n/a');
  5. } else {
  6. return (round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $sizes[$i]);
  7. }
  8. }
复制代码

使用方法:

  1. $thefile = filesize('test_file.mp3');
  2. echo formatsize($thefile);
复制代码

5、php替换标签字符 将字符串、模板标签替换成指定的内容,函数:

  1. function stringparser($string,$replacer){
  2. $result = str_replace(array_keys($replacer), array_values($replacer),$string);
  3. return $result;
  4. }
复制代码

使用方法:

  1. $string = 'the {b}anchor text{/b} is the {b}actual word{/b} or words used {br}to describe the link {br}itself';

  2. $replace_array = array('{b}' => '','{/b}' => '','{br}' => '
    ');
  3. echo stringparser($string,$replace_array);

复制代码

6、php列出目录下的文件名 列出目录下的所有文件:

  1. function listdirfiles($dirpath){
  2. if($dir = opendir($dirpath)){
  3. while(($file = readdir($dir))!== false){
  4. if(!is_dir($dirpath.$file))
  5. {
  6. echo "filename: $file
    ";
  7. }
  8. }
  9. }
  10. }
复制代码

使用方法: listdirfiles('home/some_folder/');

7、php获取当前页面url 以下函数可以获取当前页面的url,不管是http还是https。

  1. function curpageurl() {
  2. $pageurl = 'http';
  3. if (!empty($_server['https'])) {$pageurl .= "s";}
  4. $pageurl .= "://";
  5. if ($_server["server_port"] != "80") {
  6. $pageurl .= $_server["server_name"].":".$_server["server_port"].$_server["request_uri"];
  7. } else {
  8. $pageurl .= $_server["server_name"].$_server["request_uri"];
  9. }
  10. return $pageurl;
  11. }
复制代码

使用方法:

  1. echo curpageurl();
复制代码

8、php强制下载文件 不想让浏览器直接打开文件,如pdf文件,而是要直接下载文件,那么以下函数可以强制下载文件,函数中使用了application/octet-stream头类型。

  1. function download($filename){
  2. if ((isset($filename))&&(file_exists($filename))){
  3. header("content-length: ".filesize($filename));
  4. header('content-type: application/octet-stream');
  5. header('content-disposition: attachment; filename="' . $filename . '"');
  6. readfile("$filename");
  7. } else {
  8. echo "looks like file does not exist!";
  9. }
  10. }
复制代码

使用方法:

  1. download('/down/test_45f73e852.zip');
复制代码

9、php截取字符串长度 需要截取字符串(含中文汉字)长度的情况,比如标题显示不能超过多少字符,超出的长度用…表示,以下函数可以满足你的需求。

  1. /*

  2. utf-8、gb2312都支持的汉字截取函数
  3. cut_str(字符串, 截取长度, 开始长度, 编码);
  4. 编码默认为 utf-8
  5. 开始长度默认为 0
  6. */
  7. function cutstr($string, $sublen, $start = 0, $code = 'utf-8'){
  8. if($code == 'utf-8'){
  9. $pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";
  10. preg_match_all($pa, $string, $t_string);
  11. if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen))."...";

  12. return join('', array_slice($t_string[0], $start, $sublen));
  13. }else{
  14. $start = $start*2;
  15. $sublen = $sublen*2;
  16. $strlen = strlen($string);
  17. $tmpstr = '';
  18. for($i=0; $i if($i>=$start && $i if(ord(substr($string, $i, 1))>129){

  19. $tmpstr.= substr($string, $i, 2);
  20. }else{
  21. $tmpstr.= substr($string, $i, 1);
  22. }
  23. }
  24. if(ord(substr($string, $i, 1))>129) $i++;
  25. }
  26. if(strlen($tmpstr) return $tmpstr;
  27. }
  28. }
复制代码

使用方法:

  1. $str = "jquery插件实现的加载图片和页面效果";
  2. echo cutstr($str,16);
复制代码

10、php获取客户端真实ip 经常要用数据库记录用户的ip,获取客户端真实的ip:

  1. //获取用户真实ip
  2. function getip() {
  3. if (getenv("http_client_ip") && strcasecmp(getenv("http_client_ip"), "unknown"))
  4. $ip = getenv("http_client_ip");
  5. else
  6. if (getenv("http_x_forwarded_for") && strcasecmp(getenv("http_x_forwarded_for"), "unknown"))
  7. $ip = getenv("http_x_forwarded_for");
  8. else
  9. if (getenv("remote_addr") && strcasecmp(getenv("remote_addr"), "unknown"))
  10. $ip = getenv("remote_addr");
  11. else
  12. if (isset ($_server['remote_addr']) && $_server['remote_addr'] && strcasecmp($_server['remote_addr'], "unknown"))
  13. $ip = $_server['remote_addr'];
  14. else
  15. $ip = "unknown";
  16. return ($ip);
  17. }
复制代码

使用方法:

  1. echo getip();
复制代码

11、php防止sql注入 在查询数据库时,出于安全考虑,需要过滤一些非法字符防止sql恶意注入,请看一下函数:

  1. function injcheck($sql_str) {
  2. $check = preg_match('/select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile/', $sql_str);
  3. if ($check) {
  4. echo '非法字符!!';
  5. exit;
  6. } else {
  7. return $sql_str;
  8. }
  9. }
复制代码

使用方法如下:

  1. function message($msgtitle,$message,$jumpurl){
  2. $str = '';
  3. $str .= '';
  4. $str .= '';
  5. $str .= '';
  6. $str .= '页面提示';
  7. $str .= '';
  8. $str .= '';
  9. $str .= '';
  10. $str .= '
    ';
  11. $str .= '

    '.$msgtitle.'

    ';
  12. $str .= '
    ';
  13. $str .= '

    '.$message.'

    ';
  14. $str .= '

    系统将在 3 秒后自动跳转,如果不想等待,直接点击 这里 跳转

    ';
  15. $str .= "<script>settimeout('location.replace(\'".$jumpurl."\')',2000)</script>";
  16. $str .= '
';
  • $str .= '
  • ';
  • $str .= '';
  • $str .= '';
  • echo $str;
  • }
  • 复制代码

    使用方法:

    1. function changetimetype($seconds) {
    2. if ($seconds > 3600) {
    3. $hours = intval($seconds / 3600);
    4. $minutes = $seconds % 3600;
    5. $time = $hours . ":" . gmstrftime('%m:%s', $minutes);
    6. } else {
    7. $time = gmstrftime('%h:%m:%s', $seconds);
    8. }
    9. return $time;
    10. }
    复制代码

    使用方法:

    $seconds = 3712; echo changetimetype($seconds);


    Kenyataan
    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
    11 skrip pemendek URL terbaik PHP (percuma dan premium)11 skrip pemendek URL terbaik PHP (percuma dan premium)Mar 03, 2025 am 10:49 AM

    URL panjang, sering berantakan dengan kata kunci dan parameter penjejakan, boleh menghalang pelawat. Skrip pemendekan URL menawarkan penyelesaian, mewujudkan pautan ringkas yang sesuai untuk media sosial dan platform lain. Skrip ini sangat berharga untuk laman web individu a

    Pengenalan kepada API InstagramPengenalan kepada API InstagramMar 02, 2025 am 09:32 AM

    Berikutan pengambilalihan berprofil tinggi oleh Facebook pada tahun 2012, Instagram mengadopsi dua set API untuk kegunaan pihak ketiga. Ini adalah API Grafik Instagram dan API Paparan Asas Instagram. Sebagai pemaju membina aplikasi yang memerlukan maklumat dari a

    Bekerja dengan Data Sesi Flash di LaravelBekerja dengan Data Sesi Flash di LaravelMar 12, 2025 pm 05:08 PM

    Laravel memudahkan mengendalikan data sesi sementara menggunakan kaedah flash intuitifnya. Ini sesuai untuk memaparkan mesej ringkas, makluman, atau pemberitahuan dalam permohonan anda. Data hanya berterusan untuk permintaan seterusnya secara lalai: $ permintaan-

    Bina aplikasi React dengan hujung belakang Laravel: Bahagian 2, ReactBina aplikasi React dengan hujung belakang Laravel: Bahagian 2, ReactMar 04, 2025 am 09:33 AM

    Ini adalah bahagian kedua dan terakhir siri untuk membina aplikasi React dengan back-end Laravel. Di bahagian pertama siri ini, kami mencipta API RESTful menggunakan Laravel untuk aplikasi penyenaraian produk asas. Dalam tutorial ini, kita akan menjadi dev

    Respons HTTP yang dipermudahkan dalam ujian LaravelRespons HTTP yang dipermudahkan dalam ujian LaravelMar 12, 2025 pm 05:09 PM

    Laravel menyediakan sintaks simulasi respons HTTP ringkas, memudahkan ujian interaksi HTTP. Pendekatan ini dengan ketara mengurangkan redundansi kod semasa membuat simulasi ujian anda lebih intuitif. Pelaksanaan asas menyediakan pelbagai jenis pintasan jenis tindak balas: Gunakan Illuminate \ Support \ Facades \ http; Http :: palsu ([ 'Google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

    Curl dalam PHP: Cara Menggunakan Pelanjutan PHP Curl dalam API RESTCurl dalam PHP: Cara Menggunakan Pelanjutan PHP Curl dalam API RESTMar 14, 2025 am 11:42 AM

    Pelanjutan URL Pelanggan PHP (CURL) adalah alat yang berkuasa untuk pemaju, membolehkan interaksi lancar dengan pelayan jauh dan API rehat. Dengan memanfaatkan libcurl, perpustakaan pemindahan fail multi-protokol yang dihormati, php curl memudahkan execu yang cekap

    12 skrip sembang php terbaik di codecanyon12 skrip sembang php terbaik di codecanyonMar 13, 2025 pm 12:08 PM

    Adakah anda ingin memberikan penyelesaian segera, segera kepada masalah yang paling mendesak pelanggan anda? Sembang langsung membolehkan anda mempunyai perbualan masa nyata dengan pelanggan dan menyelesaikan masalah mereka dengan serta-merta. Ia membolehkan anda memberikan perkhidmatan yang lebih pantas kepada adat anda

    Pengumuman Penyiasatan Situasi PHP 2025Pengumuman Penyiasatan Situasi PHP 2025Mar 03, 2025 pm 04:20 PM

    Tinjauan Landskap PHP 2025 menyiasat trend pembangunan PHP semasa. Ia meneroka penggunaan rangka kerja, kaedah penempatan, dan cabaran, yang bertujuan memberi gambaran kepada pemaju dan perniagaan. Tinjauan ini menjangkakan pertumbuhan dalam PHP Versio moden

    See all articles

    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

    AI Hentai Generator

    AI Hentai Generator

    Menjana ai hentai secara percuma.

    Alat panas

    Pelayar Peperiksaan Selamat

    Pelayar Peperiksaan Selamat

    Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

    DVWA

    DVWA

    Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

    SublimeText3 versi Inggeris

    SublimeText3 versi Inggeris

    Disyorkan: Versi Win, menyokong gesaan kod!

    EditPlus versi Cina retak

    EditPlus versi Cina retak

    Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

    SublimeText3 Linux versi baharu

    SublimeText3 Linux versi baharu

    SublimeText3 Linux versi terkini