ホームページ  >  記事  >  バックエンド開発  >  私がよく使ういくつかのクラス_PHP チュートリアル

私がよく使ういくつかのクラス_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 16:08:21806ブラウズ


私がよく使ういくつかのカテゴリー hk の

PHP コードから変更: --------------------------------------- - --------------------------------------
/*
関数: ランダムな文字列を取得
パラメータ:
1. (int)$length = 32 #ランダムな文字の長さ、デフォルトは32です
2. (int)$mode = 0 #ランダムな文字タイプ、0は大文字と小文字の英語と数字、1は数字、2は小文字ですZimu、3は大文字、4は大文字と小文字、5は大文字と数字、6は小文字と数字
Return:取得した文字列
Use:
$code = new activeCodeObj;
$str = $code -> ;getCode($length, $mode);
*/

class activeCodeObj
{
function getCode ($length = 32, $mode = 0)
{
switch ($mode) {
case '1':
休憩; case '3':fghijklmnopqrstuvwxyz1234567890 '; ; $ i< $ i ++ }
PHP コード:------ ------------------------------------- ------------- ------------------------
/*
関数: クライアント情報の取得
パラメータ:
戻り値: 指定された情報
Usage:
$code = new clientGetObj;
1. ブラウザ: $str = $code->getBrowse();
2. IP アドレス: $str = $code->getIP();
4. オペレーティング システム: $str = $code ->getOS();
*/

class clientGetObj
{
function getBrowse()
{
global $_SERVER;
$Agent = $_SERVER['HTTP_USER_AGENT']; 4.
$browser = '';
$browserver = '';
$Browser = array('Lynx', 'MOSAIC', 'AOL', 'Opera', 'JAVA', 'MacWeb', 'WebExplorer', 'OmniWeb ');
for($i = 0 ; $i }
}
if(ereg('Mozilla', $Agent) && !ereg('MSIE', $Agent)){
$temp =explode('(', $Agent);
$Part = $temp[0];
$temp =explode('/', $Part);
$browserver = $temp[1];
$temp =explode(' ', $browserver);
$browserver = $temp[0];
$browserver = preg_replace('/([d.]+)/', '1', $browserver);
$browserver = $browserver;
$browser = 'Netscape Navigator';
}
if(ereg('Mozilla', $ Agent) && ereg('Opera', $Agent)) {
$temp =explode('(', $Agent);
$Part = $temp[1];
$temp =explode(')', $Part );
$browserver = $temp[1];
$temp =explode(' ', $browserver);
$browserver = $temp[2];
$browserver = preg_replace('/([d.]+ ) /', '1', $browserver);
$browserver = $browserver;
$browser = 'Opera';
}
if(ereg('Mozilla', $Agent) && ereg('MSIE', $Agent) ){
$temp =explode('(', $Agent);
$Part = $temp[1];
$temp =explode(';', $Part);
$Part = $temp[1];
$temp =explode(' ', $Part);
$browserver = $temp[2];
$browserver = preg_replace('/([d.]+)/','1',$browserver);
$browserver = $browserver;
$browser = 'Internet Explorer';
}
if($browser != ''){
$browseinfo = $browser.'.$browserver;
} else {
$browseinfo = false ;
}
return $browseinfo;
}

function getIP ()
{
global $_SERVER;
if (getenv('HTTP_CLIENT_IP')) {
$ip = getenv('HTTP_CLIENT_IP');
} else if ( getenv('HTTP_X_FORWARDED_FOR')) {
$ip = getenv('HTTP_X_FORWARDED_FOR');
} else if (getenv('REMOTE_ADDR')) {
$ip = getenv('REMOTE_ADDR') ;
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}

function getOS ()
{
global $_SERVER;
$agent = _USER_AGENT'];
$os = false;
if (eregi('win', $agent) && strpos($agent, '95')){
$os = 'Windows 95';
}
else if (eregi('win 9x', $agent) && strpos ($agent, '4.90')){
$os = 'Windows ME';
}
else if (eregi('win', $agent) && ereg('98', $agent)){
$os = 'Windows 98';
}
else if (eregi('win', $agent) && eregi('nt 5.1',​​ $agent)){
$os = 'Windows XP';
}
else if (eregi('win', $agent) && eregi('nt 5', $agent)){
$os = 'Windows 2000';
}
else if (eregi('win', $agent) && eregi('nt', $agent)){
$ os = 'Windows nt'; eregi('linux', $agent)){
$os = 'Linux';
}
else if (eregi('unix', $agent)){
$os = 'Unix';
}
else if ( eregi('sun', $agent) && eregi('os', $agent)){
$os = 'SunOS';
}
else if (eregi('ibm', $agent) && eregi('os' , $agent)){
$os = 'IBM OS/2';
}
else if (eregi('Mac', $agent) && eregi('PC', $agent)){
$os = 'Macintosh ';
}
else if (eregi('PowerPC', $agent)){
$os = 'PowerPC';
}
else if (eregi('AIX', $agent)){
$os = 'AIX ';
}
else if (eregi('HPUX', $agent)){
$os = 'HPUX';
}
else if (eregi('NetBSD', $agent)){
$os = 'NetBSD ';
}
else if (ereg('BSD', $agent)){
$os = 'BSD';
}
else if (ereg('OSF1', $agent)){
$os = 'OSF1 ';
}
else if (ereg('IRIX', $agent)){
$os = 'IRIX';
}
else if (ereg('FreeBSD', $agent)){
$os = 'FreeBSD ';
}
else if (eregi('teleport', $agent)){
$os = 'teleport';
}
else if (eregi('flashget', $agent){
$os = 'フラッシュゲット';
}
else if (eregi('webzip', $agent)){
$os = 'webzip';
}
else if (eregi('offline', $agent)){
$os = 'オフライン';
}
else {
$os = 'Unknown';
}
return $os;
}

}

PHP代码:------ -------------------------------------------------- ------------
class cnStrObj
{
function substrGB ($str = '', $start = '', $len = ''){
if($start == 0
$ start == ''){
$start = 1;
}
if($str == ''
$len == ''){
return false;
}
for($i = 0; $i < $start + $len; $i ++){
$tmpstr = (ord($str[$i]) >= 161 && ord($str[$i] ]) = 161 && ord($str[$i+1]) if ($i >= $start && $i < ($start + $len))
{
$tmp .=$tmpstr;
}
}
$tmp を返します。
}

関数 isGB ($str)
{
$strLen = strlen($str);
$length = 1;
for($i = 0; $i < $strLen; $i ++) {
$tmpstr = ord(substr($str, $i, 1));
$tmpstr2 = ord(substr($str, $i+1, 1));
if(($tmpstr <= 161
$tmpstr >= 247) && ($tmpstr2 <= 161
$tmpstr2 >= 247)){
$legalflag = false;
} else {
$legalflag = true;
}
}
return $legalflag;
}
}


PHP代:------------------------------------------ ------------------------------------

/***************************************
** ファイル名......: クラス.smtp.inc
** プロジェクト....: SMTP クラス
** バージョン....: 1.00b
** 最終更新日..: 2001 年 9 月 30 日
**** ********************************** /

define('SMTP_STATUS_NOT_CONNECTED', 1, TRUE);
define('SMTP_STATUS_CONNECTED', 2, TRUE);

class smtp{

var $connection;
var $recipients;
var $headers;
var $ timeout;
var $errors;
var $status;
var $body;
var $from;
var $host;
var $port;
var $helo;
var $auth;
var $user;
var $ pass;

/****************************************
** コンストラクター関数。引数:
** $params - パラメータの関連付け配列:
**
** host - SMTP サーバーのホスト名 デフォルト: localhost
** port - SMTP サーバーが実行されるポートデフォルト: 25
** こんにちは- HELO コマンドとして送信するもの デフォルト: localhost
** (通常は、このスクリプトが実行される
** マシンのホスト名)
** auth - 基本認証を使用するかどうかault: FALSE
** user - 認証用のユーザー名デフォルト:
** pass - 認証用のパスワード デフォルト:
** timeout - 通話のタイムアウト (秒単位) デフォルト: 5
** fsockopen() へ
******* ********************************/

function smtp($params = array()){

if(!define('CRLF'))
define('CRLF', "rn", TRUE) ;

$this->timeout = 5;
$this->status = SMTP_STATUS_NOT_CONNECTED;
$this->host = 'localhost';
$this->ポート = 25;
$this-> helo = 'localhost';
$this->auth = FALSE;
$this->user = '';
$this->pass = '';
$this->errors = array();

foreach($params as $key => $value){
$this->$key = $value;
}
}

/****************************************
** コネクト機能。これが呼び出されると
** 静的に新しい smtp オブジェクトを作成し、
** connect 関数 (つまり、この関数) を呼び出して
** してそれを返します。静的に呼び出されない場合、
** サーバーに接続し、HELO コマンドを送信します
*************************** *************/

function connect($params = array()){

if(!isset($this->status)){
$obj = new smtp($params) ;
if($obj->connect()){
$obj->status = SMTP_STATUS_CONNECTED;
}

return $obj;

}else{
$this->connection = fsockopen($this-> ;host, $this->port, $errno, $errstr, $this->timeout);
socket_set_timeout($this->connection, 0, 250000);

$greeting = $this->get_data ();
if(is_resource($this->connection)){
return $this->auth ? $this->ehlo() : $this->helo();
}else{
$this->errors[] = 'サーバーに接続できませんでした: '.$errstr;
FALSE を返す;
}
}
}

/****************************************
** メールの送信を処理する関数です。
**引数:
** $params - パラメータのオプションの関連配列
** 次のものを含めることができます:
** recipients - 受信者のインデックス付き配列
** from - 送信元アドレス。 (MAIL FROM,
** これがリターンパスになります
** ヘッダー -ヘッダーの配列、1 つ配列エントリごとのヘッダー
** body - メールの本文
** connect() のパラメータのいずれかを含めることもできます
** *************** ************************/

function send($params = array()){

foreach($params as $key => $value){
$this->set ($key, $value);
}

if($this->is_connected()){

// 認証するかどうか? auth 変数と auth() 関数の違いに注意してください
if($this->auth){
if(!$this->auth())
FALSE;
}

$this->mail ($this->from);
if(is_array($this->recipients))
foreach($this->recipients as $value)
$this- >rcpt($value);
else
$this->rcpt($this->recipients);

if(!$this->data())
return FALSE;

// 透明性
$headers = str_replace(CRLF.'.', CRLF.'..', trim(implode(CRLF, $this->headers)));
$body = str_replace(CRLF.'.', CRLF.'..', $this->body);
$body = $body[0] == '.' ? '.'.$body : $body;

$this->send_data($headers);
$this->send_data('');
$this->send_data($body);
$this - &gt; send_data( '。');エラー[] = '接続されていません!';
return FALSE;
}
}

/*****************************************
** HELO cmdを実装する関数
**** **********************************/

function helo(){
if(is_resource($this->connection)
AND $ this->send_data('HELO '.$this->helo)
AND substr(trim($error = $this->get_data()), 0, 3) === '250' ){

return TRUE;

}else{
$this->errors[] = 'HELO コマンドが失敗しました。出力: ' 。トリム(substr(trim($error),3));
return FALSE;
}
}

/****************************************
** EHLO cmdを実装する関数
**** **********************************/

function ehlo(){
if(is_resource($this->connection)
AND $this->send_data('EHLO ' .$this->こんにちは)
AND substr(trim($error = $this->get_data()), 0, 3) === '250' ){

return TRUE;

}else{
$this->errors[ ] = 'EHLO コマンドが失敗しました。出力: ' 。トリム(substr(trim($error),3));
return FALSE;
}
}

/*****************************************
** AUTH cmdを実装する関数
**** **********************************/

function auth(){
if(is_resource($this->接続)
AND $this->send_data('AUTH LOGIN')
AND substr(trim($error = $this->get_data()), 0, 3) === '334'
そして $this-> ;send_data(base64_encode($this->user)) // ユーザー名を送信します
AND substr(trim($error = $this->get_data()),0,3) === '334'
そして $this ->send_data(base64_encode($this->get_data()),0,3) === '235' ){

return TRUE;

}else{
$this->errors[] = 'AUTH コマンドが失敗しました: ' 。トリム(substr(trim($error),3));
return FALSE;
}
}

/****************************************
** MAIL FROM を処理する関数: cmd
* *************************************/

function mail($from){

if($this-> is_connected()
AND $this->send_data('MAIL FROM:<'.$from.'>')
AND substr(trim($this->get_data()), 0, 2) == = '250' ){

return TRUE;

}else
return FALSE;
}

/****************************************
** RCPT TO を処理する関数: cmd
* *************************************/

function rcpt($to){

if($this->is_connected ()
AND $this->send_data('RCPT TO:<'.$to.'>')
AND substr(trim($error = $this->get_data()), 0, 2) === '25' ){

TRUE を返します;

}else{
$this->errors[] = trim(substr(trim($error), 3));
return FALSE;
}
}

/** **************************************
** DATA cmdを送信する関数
*** ***********************************/

関数データ() {

if($this->is_connected()
AND $this->send_data('DATA')
AND substr(trim($error = $this->get_data()), 0, 3) = == '354' ){

return TRUE;

}else{
$this->errors[] = trim(substr(trim($error), 3));
FALSE を返します;
}
}

/*****************************************
** このオブジェクト
** がサーバーに接続されているかどうか。
***************************************/

function is_connected(){

return (is_resource($this->connection) AND ($this->status === SMTP_STATUS_CONNECTED));
}

/* ***************************************
** ちょっとしたデータを送る機能
** ************************************/

function send_data($data){

if(is_resource($this->connection)){
return fwrite($this->connection, $data.CRLF, strlen($data) )+2);
}else
return FALSE;
}

/****************************************
** データを取得する関数です。
**** **********************************/

function &get_data(){

$return = '';
$line = '';

if( is_resource($this->connection)){
while(strpos($return, CRLF) === FALSE OR substr($line,3,1) !== ' '){
$line = fgets($this ->接続、512);
$return .= $line;
}
return $return;

}else
return FALSE;
}

/****************************************
** 変数を設定します
****** ********************************/

function set($var , $value){

$this->$var = $value;
return TRUE;
}

} // クラス終了
?>


用PHP Flashアニメーション (Rate:) (转)
作者: 不明 発行時刻: 2002-7-11 文章分類: 转读次数: 124 次 来自: 不明


Macromedia 社出品の Flash アニメーション画软件现已经成 Web 面上非常に人気のある表现ツール,ウェブサイト开発行これを利用する人は、視聴者の興味を引き起こします。残念ながら、ActionScript を使用してアニメーションを作成するだけでは非常に制限が厳しくなります。Macromedia は、Flash Generator 製品を廃止し、Flash MX をサポートする Cold Fusion に切り替える予定であると発表しました。これで、Ming PHP ライブラリを使用して、Flash アニメーションを簡単に動的に作成し、コードとシームレスに統合できるようになりました。データベース内のデータをもとに、さまざまな効果を持ったアニメーションを作成できます。
Ming アニメーション ライブラリは、PHP4.05 バージョンで初めて登場し、以前のバージョンの LibSwf モジュールを置き換えました。 Ming ライブラリは C で書かれており、複数の言語をサポートしています。まず、PHP を使用してアニメーションを作成する方法を見てみましょう。このライブラリは使いやすく、PHP と緊密に統合されていますが、現在のバージョンは 0.2a です。Ming の機能はオンライン チュートリアル、サンプル、ヘルプ マニュアルで簡単に学習できます。 PHP および Flash 開発者にとって整理されており、見つけやすくなっています。 PHP と Ming ライブラリを使用すると、Web サイトを豪華に装飾できるだけでなく、Flash アニメーション開発のコストと煩雑な労力を削減できます。
Ming ライブラリを使用するには 2 つの方法があり、PHP に埋め込むことも (Unix プラットフォームの場合)、内部の関数はすべてのプラットフォームをサポートしており、使用時にインスタンス化する必要はありません。 Ming ライブラリを PHP モジュールとして実行する場合は、他のモジュールと同様に、Ming ライブラリを明示的に呼び出してから、ライブラリ内の関数を使用する必要があります。モジュールは使用前にロードする必要があるため、Ming を内部関数としてコンパイルする場合と比較してパフォーマンスがわずかに低下します。
Ming ライブラリは完全に無料で、作成者の Web サイトのアドレス: [url]http://www.opaque.net/ming/[/url]、Web サイト....php.net からダウンロードできます。 /明。
Ming ライブラリをインストールして正しく設定したら、PHP オブジェクトを作成し、PHP から Ming 関数を呼び出し、関数とプロパティを呼び出してアニメーションを定義できます。 PHP モジュールには 13 個のオブジェクトがあり、Flash の一部の機能を提供します。また、リリース時にパラメータ設定を制御できるコマンドもいくつかあります。これを使用してアニメーションを作成する方法を見てみましょう。
Macromedia Flash を使用して SWF 形式でアニメーションを作成するには、まず、いくつかのシンボルを作成します。Flash には、グラフィック、アニメーション クリップ、ボタンの 3 種類のシンボルがあります。これらのシンボルを作成したら、それらをシーンにコピーできます。各コピーはインスタンスと呼ばれ、必要なだけインスタンスをシーンに配置できます。次に、これらのオブジェクトの動作、つまりアクションとモーション軌跡を定義し、必要に応じて、サイズや背景色などのアニメーションのパラメータを定義できます。
PHP の Ming ライブラリを使用して Flash アニメーションを作成するには、Macromedia Flash と同様に、最初にこれらのシンボルを PHP オブジェクトのインスタンスとして作成し、次にアニメーション シーン内でこれらのオブジェクトの位置と関係を定義する必要があります。フレーム内のアクションが最終的にアニメーション自体を定義します。 SWF をブラウザに直接出力することも、後で使用するために SWF 形式のファイルとして保存することもできます。 Flash の利点は、グラフィカル ユーザー インターフェイスであることです。Ming ライブラリを使用すると、オブジェクトの制御が容易になるだけでなく、無制限の拡張性と再利用性も得られます。
完全な例を使用して、Ming ライブラリの使用方法を見てみましょう:


/* まずシンボルを作成し、色で塗りつぶします*/
$square = new SWFShape();
$sqfill = $ square->addFill(0, 0, 0xff);
$square->setRightFill($sqfill);
$square->movePenTo(-250,-250);
$square->drawLineTo(250 , -250);
$square->drawLineTo(250,250);
$square->drawLineTo(-250,250);
$square->drawLineTo(-250,-250);

/* アニメーション クリップ内で使用します上記のシンボルを追加し、いくつかのスクリプトを追加します */
$sqclip = new SWFSprite();
$i = $sqclip->add($square);
$i->setDepth(1);
$sqclip -> setframes(25);
$sqclip->add(new SWFAction("stop();"));
$sqclip->nextFrame();
$sqclip->add(new SWFAction(" play() ;"));
for($n=0; $n$i->rotate(-15);
$sqclip->nextFrame();
}

/*以下のボタンを作成*/

function rect($r, $g, $b) {
$s = new SWFShape();
$s->setRightFill($s->addFill($r, $g, $b));
$s->drawLine(500,0);
$s->drawLine(0,500);
$s->drawLine(-500,0);
$s->drawLine (0,-500);
return $s;
}

$b = new SWFButton();
$b->addShape(rect(0xff, 0, 0), SWFBUTTON_UP | SWFBUTTON_HIT);
$b- >addShape(rect(0, 0xff, 0), SWFBUTTON_OVER);
$b->addShape(rect(0, 0, 0xff), SWFBUTTON_DOWN);
$b->addAction( new SWFAction( "setTarget( '/box'); gotoandplay(2);"), SWFBUTTON_MOUSEDOWN);

/* 以下のアニメーションを作成し、上記の記号とボタンを追加します*/

$m = new SWFMovie();
$m -> setDimension(4000,3000);

$i = $m->add($sqclip);
$i->setDepth(3);
$i->moveTo(1650, 400); ->setName("box");

$i = $m->add($b);
$i->setDepth(2);
$i->moveTo(1400, 900);

/* 最後にブラウザに出力します*/

header('Content-type: application/x-shockwave-flash');
$m->output();
?> ;

http://www.bkjia.com/PHPjc/314781.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/314781.html技術記事私がよく使用するクラスのいくつかは、hk の PHP コードから変更されています。------------------------------------- -------- -------------------------------------- --- /* 関数: ランダムな文字を取得 文字列パラメータ: 1.(int)...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。