ホームページ  >  記事  >  バックエンド開発  >  PHP 機能 (暗号化と復号化、ランダムな文字列、文字列長の傍受、強制ダウンロードなど)

PHP 機能 (暗号化と復号化、ランダムな文字列、文字列長の傍受、強制ダウンロードなど)

WBOY
WBOYオリジナル
2016-07-25 08:51:331218ブラウズ
  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_encrypt(mcrypt_rijndael_256, md5($key), $string, mcrypt_mode_cbc, md5($key) ))));
  7. $encrypted を返す }
  8. }
使用法:

//以下は、文字列「helloweba welcomes you」をそれぞれ暗号化および復号化するものです
//暗号化:
    echo encryptdecrypt('password', 'helloweba welcomes you',0);
  1. //復号化:
  2. echo encryptdecrypt('password', 'z0jax4qmwcf+db5tnbp/xwdum84snrsxvvpxuaca4bk=',1);
  3. コードをコピー
2. PHP はランダムな文字列を生成します

ランダムな名前、一時的なパスワード、その他の文字列を生成する必要がある場合は、次の関数を使用します。

function generatedrandomstring($length = 10) {

$characters = '0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz';
$randomstring = ''; ; $i++) {
$ランダム文字列.= $characters[rand(0, strlen($characters) - 1)];
  1. return $randomstring
  2. 使用法:
echo generatedrandomstring(20);
コードをコピー

3. PHPはファイル拡張子(サフィックス)を取得します。
ファイル拡張子またはサフィックスをすばやく取得します。
関数 getextension($filename){ $myext = substr($filename, strrpos($filename, '.')) return str_replace('.','',$myext);

コードをコピー

使用方法:
  1. $filename = 'My Documents.doc';
  2. echo getextension($filename);
コードをコピー

4. PHP はファイル サイズを取得し、フォーマットします
ファイルのサイズを取得し、kb、mb、その他の読みやすい形式に変換します。
function formatsize($size) {
$sizes = array(" bytes", " kb", " mb", " gb", " tb", " pb", " eb", " zb" , " yb"); if ($size == 0) { return('n/a'); } else {
return (round($size/pow(1024, ($i = Floor(log( $size, 1024)))), 2) . $sizes[$i]);

} }

使用法:
  1. $thefile = filesize('test_file.mp3');
  2. コードをコピー
5. 文字列とテンプレートタグを指定されたコンテンツに置き換えます。機能:

function stringparser($string,$replacer){
$result = str_replace(array_keys($replacer), array_values($replacer),$string);
return $result
  1. コードをコピーします。
使用方法:

$string = '{b}アンカー テキスト{/b}は、リンク{br}自体を説明するために{b}実際の単語{/b}または{br}使用される単語です';

$replace_array = array('{b}' => '','{/b}' => '','{br}' => '< ;br />');

echo stringparser($string,$replace_array);

  1. コードをコピー
6.名前 ディレクトリ内のすべてのファイルをリストします。

function listdirfiles($dirpath){
    if($dir = opendir($dirpath)){
  1. while(($file = readdir($dir))!== false){
  2. if(!is_dir ($dirpath.$file))
  3. {
  4. echo "ファイル名: $file
    "
  5. }
  6. }
}
}

コードをコピーします

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

7. phpで現在のページのURLを取得します 次の関数は、http か https かに関係なく、現在のページの URL を取得できます。

  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. return $pageurl
使用法:

echo curpageurl();
    コードをコピー
8. PHP強制ダウンロードファイル PDF ファイルなどのファイルをブラウザで直接開かずに、ファイルを直接ダウンロードする場合は、次の関数を使用してファイルを強制的にダウンロードできます。関数。

function download($filename){
if ((isset($filename))&&(file_exists($filename))){
header("content-length: ".filesize($filename));
    header('content-type: application/octet-stream');
  1. header('content-disposition:attachment; filename="' . $filename . '"');
  2. readfile("$filename"); else {
  3. echo "ファイルが存在しないようです!"
  4. }
  5. }
  6. コードをコピー
  7. 使用法:

download('/down/test_45f73e852.zip');

コードをコピー
9. PHPは文字列の長さをインターセプトします
タイトル表示で何文字までを超えてはいけないなど、文字列(漢字を含む)の長さを切り取る必要があり、超えた長さを...で表す場合は、次の関数を使用することで対応できます。

/*

utf-8 と gb2312 の両方でサポートされる漢字インターセプト関数
Cut_str(string, インターセプト長, 開始長, エンコーディング)
エンコーディングのデフォルトは utf-8 です
    開始長さのデフォルトは 0 です
  1. */
  2. function Cutstr($string, $sublen, $start = 0, $code = 'utf-8'){
  3. if($code == 'utf-8'){
  4. $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]/";
  5. preg_match_all($pa, $string, $t_string); < ;/p>
  6. if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen))。 " ...";

  7. return join('', array_slice($t_string[0], $start, $sublen));
  8. $start = $start*2;
  9. $sublen = $sublen*2 ;
  10. $strlen = strlen($string);
  11. $tmpstr = '';

  12. for($i=0; $i<$strlen; $i++){

  13. if($i>) ; =$start && $i if(ord(substr($string, $i, 1))>129){
  14. $tmpstr.= substr($string, $i, 2 );
  15. }else{
  16. $tmpstr.= substr($string, $i, 1)
  17. }
  18. }
  19. if(ord(substr($string, $i, 1))>129) $i++;
  20. }
  21. if(strlen($tmpstr)<$strlen ) $tmpstr.= "...";
  22. return $tmpstr; }
  23. }
  24. 方法使用する:
  25. $str = "jqueryプラグインによって実装された画像とページ効果の読み込み";

    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"); Remote_addr" ) && strcasecmp(getenv("remote_addr"), "unknown"))
    8. $ip = getenv("remote_addr");
    9. else
    10. if (isset ($_server['remote_addr']) && $_server['remote_addr" '] && strcasecmp($_server['remote_addr'], "unknown"))
    11. $ip = $_server['remote_addr']
    12. else
    13. $ip = "unknown"
    14. }
    15. ;
    16. コードをコピー
    使用方法:

    echo getip();
    1. コードをコピー
    11. PHP は SQL インジェクションを防ぎます
    データベースにクエリを実行する場合、セキュリティ上の理由から、悪意のある SQL インジェクションを防ぐために一部の不正な文字をフィルタリングする必要があります。次の関数をご覧ください。

    function injcheck($sql_str) {
      $check = preg_match('/select|insert|update|delete|'|/*|*|../|./|union|into|load_file|outfile /', $sql_str);
    1. if ($check) {
    2. echo '不正な文字です! ! ';
    3. exit;
    4. } else {
    5. return $sql_str;
    6. }
    7. 使用方法は以下の通りです。
    function message($msgtitle,$message,$jumpurl){
    $str = '';

    $str .= '; ';

    $str .= '';
    $str .= 'ページプロンプト'; ';
  26. $str .= '
    ; ;
  27. $str .= '

    '.$msgtitle.'

    ';
  28. $str .= '

    '; .'

    ';
  29. $str .= '

    システムは 3 秒後に自動的にジャンプします待ちたくない場合は、ここをクリックしてください Jump

    '; $str .= "<script>settimeout(' location .replace('".$jumpurl."')',2000)</script>";
  30. $str .= '
';
  • $str .= '
  • ';
  • $str .= '';
  • $str .= ''
  • }
  • 使用法:
  • 関数changetimetype($秒) {
  • if ($秒 > 3600) {
  • $時間 = intval($秒 / 3600)
  • $分 = $秒 % 3600; . ":" . gmstrftime('%m:%s', $ minutes);
  • $time = gmstrftime('%h:%m:%s', $秒); ;
  • }
  • コードをコピー 使用法:

    $秒 = 3712; echochangetimetype($秒);

  • 声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。