ホームページ >バックエンド開発 >PHPチュートリアル >20 の実践的な PHP サンプル コード_PHP チュートリアル

20 の実践的な PHP サンプル コード_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 14:52:451294ブラウズ

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"); $パスワード=""
srand ((double)microtime()*1000000); $max = $length/2
; for($i=1; $i {
$password.=$conso[rand(0,19)]; $パスワード.=$ボーカル[ランド(0,4)]
}
$パスワードを返します
}

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

読み取り可能な文字列が必要ない場合は、代わりにこの関数を使用して、ユーザーなどのランダムなパスワードとして使用できるランダムな文字列を作成します。
/*************
*@l - ランダムな 文字列の長さ
*/
関数generate_rand($l){
$c= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; srand((double)microtime()*1000000); for($i=0; $i $rand.= $c[rand()%strlen($c)]; }
$ランドを返す
}

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 = ’';
$encode を返します
}

4. PHP 認証メールアドレス

電子メール検証は、おそらく中国で最も一般的に使用されている 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 を返します
それ以外は
戻る戻る戻ります
}

5. PHP はディレクトリの内容をリストします

関数 list_files($dir)
{
If(is_dir($dir))
{
if($handle = opendir($dir))
                                                            while(($file = readdir($handle)) !== false)
                                                                If($file != "." && $file != ".." && $file != "Thumbs.db")
                                                                                                                                                                                                                                                                                                    }
closeir($handle); }
}
}

6. PHP はディレクトリを破棄します

ディレクトリをその内容も含めて削除します。

/*****
*@dir - 破棄するディレクトリ
*@virtual[オプション] - 仮想ディレクトリかどうか
*/
関数 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 == ’.’ || $file == ’..’)
            {
                続く;
            }
            elseif (is_dir($dir.$ds.$file))
            {
                destroyDir($dir.$ds.$file);
            }
            それ以外は
            {
                unlink($dir.$ds.$file);
            }
        }
        閉じられたir($ハンドル);
        rmdir($dir);
        true を返します。
    }
    それ以外は
    {
        false を返します。
    }
}

7. PHP解析 JSON データ

twitter などのほとんどの人気のある Web サービスは、API を公開することによってデータを提供しますが、これは API データをどのように解析するかを知ることができる、JSON、XML などのさまざまな転送形式を提供します。
$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); 

// ユーザー
の各ノードをループします foreach ($xml->user as $user)
{
// アクセス属性
echo $user['id'], ' ';
//サブノードには、->gt; によってアクセスされます。 オペレーター
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"); } その他 {
エコー「ファイルが選択されていません」
}
}

12. PHP创建标签云
function getCloud( $data = array(), $minFontSize = 12, $maxFontSize = 30 )
{
$minimumCount = min( array_values( $data ) );
$maximumCount = max( array_values( $data ) );
$spread = $maximumCount - $minimumCount;
$cloudHTML = '';
$cloudTags = array(); 

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

foreach( $data as $tag => $count )
{
$size = $minFontSize + ( $count - $minimumCount )
* ( $maxFontSize - $minFontSize ) / $spread;
$cloudTags[] = ’ }
/**************************
**** 使用例 ***/
$arr = Array(’Actionscript’ => 35, ’Adobe’ => 22, ’Array’ => 44, ’Background’ => 43,
「ぼかし」 => 18、「キャンバス」 => 33、「クラス」=> 15、「カラーパレット」=> 11、「切り抜き」=> 42、
「区切り文字」 => 13、「深さ」=> 34、「デザイン」=> 8、「エンコード」=> 12、「暗号化」=> 30、
「抽出」 => 28、「フィルター」 => 42);
echo getCloud($arr, 12, 36);  

13. PHP寻找二文字列の類似性

PHP には、あまり使用されない類似テキスト関数が用意されていますが、この関数は 2 つの文字列を比較し、同程度の百分率を返すのに非常に役立ちます。 like_text($string1, $string2, $percent);
//$percent には類似性のパーセンテージが含まれます

14. PHP での使用 Gravatar の有効な画像

WordPress が普及するにつれて、Gravatar も流行しています。Gravatar は使いやすい API を提供しているため、アプリケーション プログラムに組み込むことも非常に便利です。
/*******************
*@email -
のグラバターを表示するためのメールアドレス *@size - グラバターのサイズ
*@default - 使用するデフォルトのグラバターの URL
*@評価 - Gravatar の評価 (G、PG、R、X)
*/
関数 show_gravatar($email, $size, $default, $評価)
{
echo ’ height="’.$size.’px" />’;
}

15. PHP在字断点处截断文字

区切り文字 (単語区切り)、つまり、実行中に 1 つの単語が切れる可能性がある場所。この関数は、区切り文字列に配置されます。
//オリジナルの PHP コード(Chirp Internet による): www.chirp.com.au
// このヘッダーを含めることで、このコードの使用を承認してください。
function myTruncate($string, $limit, $break=".", $pad="...") {
// 文字列が $limit より短い場合は変更せずに戻ります
if(strlen($string) <= $limit)
$string を返します。 

// $break は $limit と 文字列の終わりの間に 存在しますか?
if(false !== ($breakpoint = strpos($string, $break, $limit))) {
if($breakpoint < strlen($string) - 1) {
$string = substr($string, 0, $breakpoint) 。 $パッド;
}
}
$string を返します。
}
/***** 例 ****/
$short_string=myTruncate($long_string, 100, ’ ’);  

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 = new ZipArchive();
if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {
false を返します。
}
// ファイルを追加します
foreach($valid_files as $file) {
$zip->addFile($file,$file);
}
//デバッグ
//echo 'zip アーカイブには、',$zip->numFiles,' ステータスが ',$zip->status のファイルが含まれています。 

//zip を閉じます -- 完了です。
$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 - 解凍されたファイルの宛先ディレクトリ
*/
function unzip_file($file, $destination){
// オブジェクトを作成します
$zip = 新しい ZipArchive() ;
// アーカイブを開く
if ($zip->open($file) !== TRUE) {
死ぬ(「アーカイブを開けませんでした」);
}
// コンテンツを宛先ディレクトリに抽出します
$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 と電子メール アドレスの文字列をクリック可能なハイパーリンクに変換します。

function makeClickableLinks($text) { $text = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_+.~#?&//= ]+)', '
1', $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 return $text;}

20. PHP で画像サイズを調整する

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

/**********************
*@filename - 画像へのパス
*@tmpname - サムネイルへの一時的なパス
*@xmax - 最大幅
*@ymax - 最大高さ
*/
関数size_image($filename, $tmpname, $xmax, $ymax)
{
$ext =explode(".", $ファイル名); $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 $ を返します

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 リクエストの場合
}その他{
//何か他のもの
}

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/371546.html技術記事 1.PHP 読み取り可能なランダム文字列 このコードは、辞書の単語に近い、実用的でパスワード検証機能を備えた読み取り可能な文字列を作成します。 /**************** *@length-leng...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。