ホームページ  >  記事  >  バックエンド開発  >  命を救う 21 の PHP コードです_PHP チュートリアル

命を救う 21 の PHP コードです_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:46:55878ブラウズ

上の段落: http://www.BkJia.com/kf/201110/109143.html

1. PHP はランダムな文字列を読み取ることができます

このコードは、辞書の単語に近い、実用的でパスワード検証機能を備えた可読文字列を作成します。

/**************

*@length - ランダムな文字列の長さ (2 の倍数である必要があります)

**************/

関数 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

{

$password.=$conso[rand(0,19)];

$password.=$vocal[rand(0,4)];

}

$password を返します;

2. PHP はランダムな文字列を生成します

読み取り可能な文字列が必要ない場合は、代わりにこの関数を使用して、ユーザーなどのランダムなパスワードとして使用できるランダムな文字列を作成します。

/*************

*@l - ランダムな文字列の長さ

*/

関数generate_rand($l){

$c= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

srand((double)microtime()*1000000);

for($i=0; $i

$rand.= $c[rand()%strlen($c)];

}

$rand を返します;

3. PHP でエンコードされたメール アドレス

このコードを使用すると、任意の電子メール アドレスを HTML 文字エンティティとしてエンコードして、スパム プログラムによる収集を防ぐことができます。

function encode_email($email='info@domain.com', $linkText='お問い合わせ', $attrs ='class="emailencoder"' )

{

// レンプラザ・アロバ・イ・プントス

$email = str_replace('@', '@', $email);

$email = str_replace('.', '.', $email);

$email = str_split($email, 5);

$linkText = str_replace('@', '@', $linkText);

$linkText = str_replace('.', '.', $linkText);

$linkText = str_split($linkText, 5);

$part1 = '';

$part4 = '';

$encoded = '';

$encoded を返します;

}

4. PHP 検証メールアドレス www.2cto.com

電子メール検証は、おそらく中国で最も一般的に使用されている Web フォーム検証です。電子メール アドレスの検証に加えて、このコードは電子メール ドメインが属する DNS の MX レコードをチェックすることも選択でき、電子メール検証機能がより強力になります。

関数 is_valid_email($email, $test_mx = false)

{

if(エレギ("^([_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);

        }

        それ以外

            true を返します;

    それ以外

        false を返します;

5. PHP列出目录内容

 関数 list_files($dir)

{

    if(is_dir($dir))

    {

        if($handle = opendir($dir))

        {

            while(($file = readdir($handle)) !== false)

            {

                if($file != "." && $file != ".." && $file != "Thumbs.db")

                {

                    echo ''.$file.'
'."n";

                }

            }

            Closedir($handle);

        }

    }

6. PHP销毁目录

1 つのコンテンツを除いて、そのコンテンツが含まれます。

 /*****

*@dir - 破棄するディレクトリ

*@virtual[オプション] - 仮想ディレクトリかどうか

*/

function destroyDir($dir, $virtual = false)

{

    $ds = DIRECTORY_SEPARATOR;

    $dir = $virtual ?実パス($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 == '.' || $file == '..')

            {

                続けます;

            }

            elseif (is_dir($dir.$ds.$file))

            {

                destroyDir($dir.$ds.$file);

            }

            それ以外

            {

                リンク解除($dir.$ds.$file);

            }

        }

        Closedir($handle);

        rmdir($dir);

        true を返します;

    }

    それ以外

    {

        false を返します;

    }

7. PHP解析JSONデータ

Twitter などの大多数の Web サービスと同様に、API を介してデータが提供され、JSON、XML などを含むさまざまな転送形式で API データを解析できます。

 $json_string='{"id":1,"name":"foo","email":"foo@foobar.com","interest":["wordpress","php"]} ';

$obj=json_decode($json_string);

echo $obj->name; // foo

を出力します

echo $obj->interest[1]; //php 8 を出力します。 PHP 解析 XML データ

 //xml文字列

$xml_string="

<ユーザーID='398'>

フー

<メール>foo@bar.com

<ユーザーID='867'>

Foobar

<メール>foobar@foo.com

";

 

//simplexml を使用して XML 文字列をロードします

$xml = simplexml_load_string($xml_string); 

 

// user

の各ノードをループします

foreach ($xml->user as $user)

{

//アクセス属性

echo $user['id'], ' ';

// サブノードには -> によってアクセスされます。オペレーター

echo $user->name, ' ';

echo $user->email, '
';

9. PHP创建日志缩略名

ユーザー歓迎の日志缩略名を作成しました。

 関数 create_slug($string){

$slug=preg_replace('/[^A-Za-z0-9-]+/', '-', $string);

$slug を返します;

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

この関数は、ユーザーの真の IP アドレスを取得します。つまり、プロキシ サーバーを使用します。

 関数getRealIpAddr()

{

    if (!emptyempty($_SERVER['HTTP_CLIENT_IP']))

    {

        $ip=$_SERVER['HTTP_CLIENT_IP'];

    }

    elseif (!emptyempty($_SERVER['HTTP_X_FORWARDED_FOR']))

    // IP がプロキシから渡されたことを確認するため

    {

        $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];

    }

    それ以外

    {

        $ip=$_SERVER['REMOTE_ADDR'];

    }

    $ip を返します;

11. PHP强制性文件ダウンロード

ユーザに安全性を提供するためのファイルダウンロード機能。

 /********************

*@file - ファイルへのパス

*/

関数force_download($file)

{

if ((isset($file))&&(file_exists($file))) {

header("コンテンツの長さ: ".filesize($file));

header('Content-Type: application/octet-stream');

header('Content-Disposition:attachment; filename="' . $file . '"');

readfile("$file");

} その他 {

echo "ファイルが選択されていません";

}

12. PHP创建标签云

 関数 getCloud( $data = array(), $minFontSize = 12, $maxFontSize = 30 )

{

$minimumCount = min( array_values( $data ) );

$maximumCount = max( array_values( $data ) );

$spread = $maximumCount - $minimumCount;

$cloudHTML = '';

$cloudTags = 配列(); 

 

$spread == 0 && $spread = 1; 

 

foreach( $data as $tag => $count )

{

$size = $minFontSize + ( $count - $minimumCount )

* ( $maxFontSize - $minFontSize ) / $spread;

$cloudTags[] = ''

。 htmlspecialchars( ストリップスラッシュ( $tag ) ) 。 '';

}

 

return join( "n", $cloudTags ) 。 「ん」;

}

/**************************

**** 使用例 ***/

$arr = Array('Actionscript' => 35, 'Adobe' => 22, 'Array' => 44, 'Background' => 43,

「ぼかし」=> 18、'キャンバス' => 33、「クラス」=> 15、「カラーパレット」=> 11、「クロップ」 => 42、

'区切り文字' => 13、「深さ」 => 34、「デザイン」 => 8、「エンコード」 => 12、「暗号化」 => 30、

'抽出' => 28、「フィルター」 => 42);

エコー getCloud($arr, 12, 36); 13. PHP寻找二つの文字列の類似性

PHP には、あまり使用されないsimilar_text 関数が用意されていますが、この関数は 2 つの文字列を比較し、類似した程度の百分率を返すのに非常に役立ちます。

 類似テキスト($string1, $string2, $percent);

//$percent には類似性のパーセンテージが入ります 14. PHP 在应用程序中使用 Gravatar 通用画像

WordPress の人気が高まるにつれて、Gravatar の人気も高まります。 Gravatar は使いやすい API を提供するため、アプリケーションに簡単に組み込むことができます。

/******************

*@email - グラバターを表示するメール アドレス

*@size - グラバターのサイズ

*@default - 使用するデフォルトの Gravatar の URL

*@評価 - Gravatar(G、PG、R、X)の評価

*/

function show_gravatar($email, $size, $default, $評価)

{

echo '

height="'.$size.'px" />';

15. PHP は文字ブレークポイントでテキストを切り詰めます

ワードブレークとは、改行時に単語を区切ることができるポイントです。この関数は、ハイフネーションポイントで文字列を切り詰めます。

16. PHPファイルのZip圧縮

/* 圧縮 zip ファイルを作成します */

function create_zip($files = array(),$destination = '',$overwrite = false) {

//zip ファイルが既に存在し、上書きが false の場合は false を返します

if(file_exists($destination) && !$overwrite) { return false }

//変数

$valid_files = array();

// ファイルが渡された場合...

if(is_array($files)) {

//各ファイルを循環して実行します

foreach($files as $file) {

// ファイルが存在することを確認してください

if(file_exists($file)) {

$valid_files[] = $file;

}

}

}

// 適切なファイルがあれば...

if(count($valid_files)) {

// アーカイブを作成します

$zip = 新しい ZipArchive();

if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {

false を返します;

}

// ファイルを追加します

foreach($valid_files as $file) {

$zip->addFile($file,$file);

}

//デバッグ

//echo 'zip アーカイブには、',$zip->status のステータスを持つ ',$zip->numFiles' ファイルが含まれています。

// ジッパーを閉じます -- 完了です!

$zip->close();

// ファイルが存在することを確認します

return file_exists($destination);

}

それ以外

{

false を返します;

}

}

/***** 使用例 ***/

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

create_zip($files, 'myzipfile.zip', true); 17. PHPでZipファイルを解凍する

/**********************

*@file - zip ファイルへのパス

*@destination - 解凍されたファイルの宛先ディレクトリ

*/

関数 unzip_file($file, $destination){

// オブジェクトを作成します

$zip = 新しい ZipArchive() ;

// アーカイブを開く

if ($zip->open($file) !== TRUE) {

die (「アーカイブを開けませんでした」);

}

// コンテンツを宛先ディレクトリに抽出します

$zip->extractTo($destination);

// アーカイブを閉じる

$zip->close();

echo 'アーカイブをディレクトリに抽出';

18. PHP は URL アドレスの http 文字列をデフォルトにします

一部のフォームでは URL 入力を受け入れる必要がある場合がありますが、ユーザーが http:// フィールドを追加することはめったにありません。このコードはそのフィールドを URL に追加します。

if (!preg_match("/^(http|ftp):/", $_POST['url'])) {

$_POST['url'] = 'http://'.$_POST['url'];

19. PHP は URL 文字列をハイパーリンクに変換します

この関数は、URL および電子メール アドレス文字列をクリック可能なハイパーリンクに変換します。

関数 makeClickableLinks($text) {

$text = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_+.~#?&//=]+)',

'1', $text);

$text = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_+.~#?&//=]+)',

'12', $text);

$text = eregi_replace('([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3})',

'1', $text);

$text を返します;

20. PHP 画像のサイズ変更

画像のサムネイルの作成には時間がかかりますが、このコードはサムネイルのロジックを理解するのに役立ちます。

/**********************

*@filename - 画像へのパス

*@tmpname - サムネイルへの一時パス

*@xmax - 最大幅

*@ymax - 最大高さ

*/

関数size_image($filename, $tmpname, $xmax, $ymax)

{

$ext =explode(".", $filename);

    $ext = $ext[カウント($ext)-1];  

 

    if($ext == "jpg" || $ext == "jpeg")

        $im = imagecreatefromjpeg($tmpname);

    elseif($ext == "png")

        $im = imagecreatefrompng($tmpname);

    elseif($ext == "gif")

        $im = imagecreatefromgif($tmpname);  

 

    $x = 画像x($im);

    $y = 画像sy($im);  

 

    if($x

        $im を返します。  

 

    if($x >= $y) {

        $newx = $xmax;

        $newy = $newx * $y / $x;

    }

    他に{

        $newy = $ymax;

        $newx = $x / $y * $newy;

    }

 

    $im2 = imagecreatetruecolor($newx, $newy);

    imagecopyresize($im2, $im, 0, 0, 0, 0, フロア($newx), フロア($newy), $x, $y);

    $im2 を返します;

21. PHP检测ajax请求

jquery、Mootools などのほとんどの JavaScript フレームは、Ajax リクエストの発行時に、都市が追加の HTTP_X_REQUESTED_WITH 部分情報を送信し、一方の ajax リクエストに応じて、サーバー側で Ajax リクエストを検出できます。

 if(!emptyempty($_SERVER['HTTP_X_REQUESTED_WITH']) && strto lower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){

    //AJAX リクエストの場合

}その他{

//何か他のもの

}

 

摘自周飞甫的博客

http://www.bkjia.com/PHPjc/478555.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/478555.html技術記事上段:http://www.2cto.com/kf/201110/109143.html 1. PHP可阅读随机字列此代码将创建一可阅读的字符列,其实以上词典中的单词,实用及有密…
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。