首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 常用自定義工具函數集:月份格式化、UTF-8 過濾、二進制流存檔

     編輯:PHP 綜合知識

1. 多語言月份格式化

<?php
function format_month($m, $type = 1) {
    $months = [
        ['', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
        ['', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
        ['', '一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
    ];
    return $months[$type][$m] ?? '';
}
?>

2. UTF-8 字符串過濾 (保留中英數符)

<?php
function filter_utf8_char($ostr) {
    // 正則匹配合法字符區塊
    preg_match_all('/[\x{FF00}-\x{FFEF}|\x{0000}-\x{00FF}|\x{4E00}-\x{9FFF}]+/u', $ostr, $matches);
    $str = implode('', $matches[0]);

    if ($str === '') {
        // 兜底逐字節處理
        $return = '';
        $len = strlen($ostr);
        for ($i = 0; $i < $len; ) {
            $ord = ord($ostr[$i]);
            if ($ord >= 224) { $return .= substr($ostr, $i, 3); $i += 3; }
            elseif ($ord >= 192) { $return .= substr($ostr, $i, 2); $i += 2; }
            elseif ($ord >= 65 && $ord <= 90) { $return .= $ostr[$i]; $i++; }
            elseif ($ord >= 128 && $ord <= 191) { $i++; } // 跳過續位元組
            else { $return .= $ostr[$i]; $i++; }
        }
        $str = $return;
        preg_match_all('/[\x{FF00}-\x{FFEF}|\x{0000}-\x{00FF}|\x{4E00}-\x{9FFF}]+/u', $str, $matches);
        $str = implode('', $matches[0]);
    }
    return $str;
}
?>

3. 二進制流存檔 (支援 HTTP 原始輸入)

<?php
function binary_to_file($file) {
    $content = $GLOBALS['HTTP_RAW_POST_DATA'] ?? file_get_contents('php://input');
    // 注意:enctype=multipart/form-data 時不可用
    return file_put_contents($file, $content, LOCK_EX);
}
?>

三個函數覆蓋國際化顯示、內容安全過濾、文件上傳接收常見場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved