ホームページ  >  記事  >  php教程  >  PHP実践コード集

PHP実践コード集

WBOY
WBOYオリジナル
2016-06-13 12:19:081072ブラウズ

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;
for($i=1; $i{
$password.=$conso[rand(0,19) )];
$password.=$vocal[rand(0,4)];
return $password;


2. string

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



コードをコピーします

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

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

*/
function generated_rand($ l){
$c= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
srand((double)microtime()*1000000);
for($i=0; $i$rand .= $c[rand()%strlen($c)];
}
return $rand;


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


コードをコピー

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

function encode_email($email='info@domain.com', $ linkText=' お問い合わせ', $attrs ='class="emailencoder"' ) { // remplazar aroba y puntos $email = str_replace('@', '@', $email) ;

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

$email = str_split($email, 5);

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

$part1 = '< ;a href="ma';
$part2 = 'ilto:';
$part3 = '" '.$part4 = '' ;

$encoded = '' ;

return $encoded;


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



コードをコピー

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

function 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); } else return true;

else

return false;
}


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



コードをコピーします

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


function list_files($ dir)
{

if(is_dir($dir))
{
if($handle = opendir($dir))

{ while(($file = readdir( $handle)) ! == false) { if($file != "." && $file != ".." && $file != "Thumbs.db") {

echo '< ;a target="_blank" href="'.$dir.$file.'">'.$file.'
'."n"; >}

}
closedir($handle);
}
}
}


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



コードをコピー

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


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

オープン API を通じてデータを提供する Twitter などの最も一般的な Web サービスと同様に、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 文字列

$xml_string=" <ユーザー> Foo foo@bar.com > Foobar

foobar@foo.com



//simplexml を使用して XML 文字列をロードします
$xml = simplexml_load_string($xml_string);

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

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'];

} else { $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. タグクラウドを作成します


コードをコピー

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


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 ) / $スプレッド;
$cloudTags[] = '' のカウントを返しました。
。 htmlspecialchars( ストリップスラッシュ( $tag ) ) 。 '
';
}

return join( "n", $cloudTags ) 。 「ん」;
}
/**************************
**** 使用例 ***/
$arr = Array('Actionscript' => 35, 'Adobe' => 22, 'Array' => 44, 'Background' => 43、
'ぼかし' => 33、'カラーパレット' => 🎜>'デリミタ' => 13、'深さ' => 8、'暗号化' => 30、
'抽出' => ; 28、「フィルター」 => 42);
echo getCloud($arr, 12, 36);

13. 2 つの文字列の類似性

PHP には、使用頻度が非常に低い類似テキスト関数が用意されていますが、この関数は 2 つの文字列を比較し、類似した程度の百分率を返すために非常に役立ちます。 >

复制代码

代码如下: similar_text($string1, $string2, $percent);

//$percent には類似性のパーセンテージ



14 が含まれます。 Gravatar の共通イメージ

は、WordPress の普及に伴い、アプリケーション プログラムで使用されるようになりました。 >


复制代

代码如下: /****************** *@email - グラバターを表示するメール アドレス

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

*@default - デフォルトのグラバターの URL
*@rated - Gravatar(G, PG, R, X) の評価
を使用します*/
function show_gravatar($email, $size, $default, $評価)
{
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)

return $string;

// $limit と文字列の終わりの間に $break は存在しますか?
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. 文件 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 = 新しい 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 と電子メールの地名文字列を可用性ポイントの超級接続に変換します。

代码如下:

function 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 - 最大高さ

*/

function raise_image($filename, $tmpname, $xmax, $ymax)
{
$ext =explode(" .", $ファイル名);
$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 = imagey($im);

if($x return $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, Floor($newx), Floor($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{
//何か他の
}

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