ホームページ  >  記事  >  バックエンド開発  >  PHP実践コード集_PHPチュートリアル

PHP実践コード集_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:41:26829ブラウズ

1. 読み取り可能なランダム文字列

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

コードをコピー コードは次のとおりです:

/**************
*@length - ランダムな文字列の長さ (2 の倍数である必要があります)
**************/
function 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;
{
$password.=$conso[rand(0,19)];
$password.=$vocal[rand(0,4)];
return $password;
2.
人間が読める文字列が必要ない場合は、代わりにこの関数を使用して、ユーザーなどのランダムなパスワードとして使用できるランダムな文字列を作成します。


コードをコピーします

コードは次のとおりです:
/************* *@l - ランダムな文字列の長さ */ functiongenerate_rand($l){
$c= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
srand((double)microtime() *1000000) ;
for($i$rand.= $c[rand()%strlen($c)]
}
return $rand;


3. 電子メール アドレスをエンコードする

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


コードをコピーします

コードは次のとおりです:

function encode_email($email='info@domain.com', $linkText='Contact Us', $attrs ='class="emailencoder"' ) { // 再配置 $email = str_replace('@', '@', $email); $email = str_replace('.', '.', $email = str_split($email , 5);
return true; ;
else AReturn false;

5. ディレクトリの内容を一覧表示します
コードをコピーします: Function list_files ($ DIR) {IF (IS_DIR ($ DIR)) { IF ($handle = opendir($dir))
{
コードをコピーします

コードは次のとおりです:

/*****
*@dir - 破棄するディレクトリ
*@virtual[オプション] - 仮想ディレクトリかどうか
*/
function destroyDir($dir, $virtual = false)
{
$ds = DIRECTORY_SEPARATOR;
$dir = $virtual ? : $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);
}
else
{
unlink($dir.$ds.$file)
}
}
closedir($handle); rmdir($dir);
return true
}
else
{
return false;
}


7. 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. XML データを解析します


コードをコピーします

コードは次のとおりです。
//xml string $xml_string=" <ユーザー>
<ユーザーID='398'>
<メール>foo id='867'>
Foobar


//load simplexml を使用した XML 文字列
$ xml = simplexml_load_string($xml_string);

//ユーザー
foreach ($xml->user as $user) の各ノードをループします
{
//アクセス属性
echo $user ['id'], ' ';
// サブノードは -> 演算子
echo $user->name, ' '; によってアクセスされます。
}


9. ログの略語を作成する

ユーザーフレンドリーなログの略語を作成します。



コードをコピー

コードは次のとおりです:

function create_slug($string){
$slug=preg_replace('/[^A-Za-z0-9-]+/', '-' , $string );
return $slug;
}
10. クライアントの実際の IP アドレスを取得します この関数は、プロキシ サーバーを使用している場合でも、ユーザーの実際の IP アドレスを取得します。


コードをコピーします

コードは次のとおりです:

function 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']
elせ
{
$ip= $_SERVER['REMOTE_ADDR'];
}
return $ip;


11. 必須のファイルダウンロード機能をユーザーに提供します。



コードをコピーします

コードは次のとおりです:


/********************
*@file - ファイルへのパス
*/
function Force_download($file)
{
if ((isset($file))&&(file_exists($) file))) {
header("Content-length: ".filesize($file));
header('Content-Type: application/octet-stream');
header('Content-Disposition:attachment; filename= "' . $ file . '"'); readfile("$file"); else { echo "ファイルが選択されていません"
12. タグクラウドを作成します





コードは次のとおりです:

PHP には、使用頻度が非常に少ない類似テキスト関数が用意されていますが、この関数は、2 つの文字列を比較して類似度の百分率を返すのに非常に役立ちます。以下のように:


similar_text($string1, $string2, $percent);
//$percent には類似性のパーセンテージが入ります 14. Gravatar の汎用イメージは WordPress の普及とともに普及しており、Gravatar も同様に流行しています。 Gravatar は使いやすい API を提供しているため、アプリケーション プログラムへの組み込みも容易になっています。
代码如下:


/******************
*@email - グラバターを表示するメールアドレス
*@size - グラバターのサイズ
*@default - 使用するデフォルトのグラバターの URL
*@評価- Gravatarの評価(G、PG、R、X)
*/
function show_gravatar($email, $size, $default, $ ratings)
{ echo 'height="'.$size.'px" />'; }

15. 文字区切り点では区切り文字

によって指定された区切り文字 (単語区切り)、つまり 1 つの文が実行中に途切れる可能性があります。この関数は区切り文字列に配置されます。例:


// Chirp Internet によるオリジナルの PHP コード: www.chirp.com.au
// このヘッダーを含めることで、このコードの使用を承認してください。
function myTruncate($string, $limit, $break=".", $pad="...") {
// string が $limit より短い場合は、変更せずに戻ります
if(strlen($string) < ;= $limit)
$string を返します。

// $break は $limit と文字列の終わりの間に存在しますか?
if(false !== ($breakpoint = strpos($string, $break, $limit))) {
if($breakpoint < strlen($string) - 1) {
$string = substr($string, 0、$ブレークポイント)。 $パッド;
}
}
$string を返します。 } /***** 例 ****/ $short_string=myTruncate($long_string, 100, ' ');
16. 文件 Zip 压缩



复制代

代码如下:

/* 圧縮 zip ファイルを作成します */
function create_zip($files = array(),$destination = '',$overwrite = false) {
//zip ファイルが既に存在し、上書きが false の場合、false を返します
if(file_exists($destination) && !$overwrite) { return false;
//vars
$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) {
return false;
}
//ファイルを追加します
foreach($valid_files as $file) {
$zip->addFile($file,$file);
}
//debug
//echo 'zip アーカイブには、ステータス ',$zip->status; のファイル ',$zip->numFiles' が含まれています。

//ジッパーを閉じます -- 完了です!
$zip->close();

//ファイルが存在することを確認します
return file_exists($destination);
}
else
{
return false;
}
}
/***** 使用例 ***/
$files=array('file1.jpg', 'file2.jpg', 'file3.gif');
create_zip($files, 'myzipfile.zip', true);

17. 解压缩 Zip 文件
复制代代码如下:

/**********************
*@file - zip ファイルへのパス
*@destination - 解凍されたファイルの宛先ディレクトリ
*/
function unzip_file($file, $destination){
// オブジェクトを作成
$zip = new ZipArchive() ;
// アーカイブを開く
if ($zip->open($file) !== TRUE) {
die ('アーカイブを開けませんでした');
}
// コンテンツを宛先ディレクトリに抽出します
$zip->extractTo($destination);
// アーカイブを閉じる
$zip->close();
echo 'アーカイブはディレクトリに抽出されました';
}

18. URL アドレスに http 文字列を設定するには、いくつかの表内のネットワーク アクセスを受け入れる必要がある場合がありますが、http:// フィールドを追加する必要はなく、このコードがそのフィールドを追加するネットワーク アドレスになります。 :


if (!preg_match("/^(http|ftp):/", $_POST['url'])) {
$_POST['url'] = 'http://'.$_POST[ 「URL」]; }19. ウェブサイトの文字列を超級接続に変換します。
この関数は、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.













































🎵 &*/
関数 サイズ変更画像($filename, $tmpname, $xmax, $ymax)
{
$ext =explode(".", $filename);
$ext = $ext[count($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 = $y) { 🎜$newx = $xmax; 🎜$newy = $newx * $y / $x; 🎜} 🎜else { 🎜$newy = $ymax; 🎜$newx = $x / $y * $newy; 🎜} 🎜🎜$im2 = imagecreatetruecolor($newx, $newy); 🎜imagecopyresize($im2, $im, 0, 0, 0, 0, フロア($newx), フロア($newy), $x, $y); 🎜 $im2 を返す; 🎜} 🎜🎜
21. Ajax リクエストを検出する

jQuery、Mootools などのほとんどの JavaScript フレームワークは、Ajax リクエストを作成するときに追加の HTTP_X_REQUESTED_WITH ヘッダー情報を送信するため、サーバー側でそれを検出できます。アヤックスのリクエスト。
コードをコピーします コードは次のとおりです:

if(!emptyempty($_SERVER['HTTP_X_REQUESTED_WITH']) && strto lower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){
// AJAX リクエストの場合
}else{
//他のもの
}

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