中文
文字列操作関数
PHP3.0 には多くの文字列操作関数があります: 重要なものは次のとおりです: (1) echo、print、printf、sprintf
は文字列内にある場合に使用されます。後の 2 つの関数は、C の同じ名前の関数と似ています。(2) strchr、strlen、strtok、strrchr、strrev、strstr、strto lower、strtoupper、substr、ucfirst。
使用方法 一部の文字列操作関数は、C の同じ名前の関数とまったく同じ意味を持ちます。strto lower と strtoupper は文字列を小文字に変換し、ucfirst は最初の文字列を大文字に変換します。文字列の文字を大文字に変換します。substr は返された文字列の部分文字列です。使用法は次のとおりです。substr (string, head, length)。先頭の位置は 0 から計算されます。負の数の場合は、先頭から数えることを意味します。
(3)Chr,Ord
同じ名前の関数
(4)explode, implode,join
配列に関連する関数。はセパレータに分割されます 結果の配列を開きます implode (array, separator) は配列の各要素の間にセパレータを挿入した文字列を返します
(5)Chop
末尾を処理します。文字列の
(6)htmlspecialchars
「<」が「<」になるなど、HTML の特殊文字を名前に置き換えます
(7)nl2br
HTML 内のすべての文字に「<」を追加します。 ;BR>" を改行の前に置きます。
(8) AddSlashes、StripSlashes
必要に応じて文字列に "" を追加し、"" を削除します。一部のデータベースでは、クエリする文字列に含まれている必要があります。クエリは文字 "" を追加および削除した後にのみ実行できます。
(9) parse_str
"name1=value1&name2=value2&..." 型の文字列をいくつかの変数に分析します
例: parse_str。 ( "a=1&b=2"); 同じ名前部分を持つ 2 つの名前/値のペアがある場合、それぞれ値 1 と 2 を持つ 2 つの変数 $a と $b を生成します。後者のペアは前のペアを上書きします。たとえば、「a[]=1&a[]=2」のように、両方のペアの名前の末尾に「[]」がある場合、2 つのペアを含む配列 $a が生成されます。要素はそれぞれ 1 と 2 です。
正規表現関数
PHP と他のクロスプラットフォーム言語 (おそらく Java はその 1 つではありません。:)) は似ており、もちろん正規表現関数もあります。 PHP3.0の機能はPerlに比べるとかなり劣りますが、それでも十分便利です。 主な機能は以下の通りです。
(1) ereg、eregi
前者は大文字と小文字を区別する正規表現のマッチング関数です。 、後者は無関係です。
使用法: ereg (正規表現, 文字列, [配列名の一部に一致]);
PHP3.0 の正規表現は、grep で使用されるものとほぼ同じです。 2)ereg_replace, eregi_replace
これらは置換関数です
使い方:
ereg_re place(正規表現, 置換文字列, 元の文字列)
文字列処理関数には「変換」関数です。 Perl の tr/.../.../ に似ています。
使用法: strtr (string, "from", "to");
例: strtr("aaabb", "ab", "cd) ") は "cccdd" を返します。
(3)split
は、explode 関数に似ていますが、今回は正規表現が一致する文字列を分割できます。
使用法:
split(正規表現) , string, [最初の数の項目を削除]);
ファイル操作関数
PHP3.0 のファイル 操作関数は一般に C の関数と似ていますが、アクセスのサポートに加えて、いくつかの拡張機能があります。ローカル ファイルへのアクセスは、HTTP および FTP URL へのアクセスもサポートしています。これらの URL をファイル名としてファイル操作関数に渡すだけです。これで完了です。
(1)fclose、feof、fgetc、 fgets、fopen、fputs、fseek、ftell、mkdir、readlink、rename、rewind、rmdir、stat、unlink
これらの関数 この関数は C 言語の同名の関数
に似ています。(2)chgrp、chmod、chown、copy
これらの関数の意味も分かりやすいです:
chmod (ファイル名、モード); user) );
copy (ソースファイル名, ターゲットファイル名);
これらの関数は、fopen によって返されるファイル番号の代わりにファイル名を使用することに注意してください。 filectime、filegroup、fileinode、filemtime、fileowner、filesize、filetype、fileperms、fileumask、is_dir、is_executable、is_file、is_link、is_readable、is_writeable
これらはファイル情報関数であり、そのほとんどはパラメータとしてファイル名を受け取ります。
(4) fgetss
使用法:
fgetss (ファイル番号、最大長);
ファイルの 1 行または最大長まで読み取りますが (fgets と同様)、すべての HTML タグと PHP タグを削除します。
(5) file
使用法:
file(ファイル名);
各要素がファイル内の行である配列を返します
(6)tempnam
使用法:
tempnam( directory) name, prefix);
一時ファイル名を返します
(7)basename, dirname
Windows システムでは、ファイル名部分とディレクトリ名部分を取得します。 " はディレクトリ区切り文字として使用できます。他のシステムでは、"/" のみが機能します。
ディレクトリ トラバーサル関数
PHP のディレクトリ トラバーサル関数も非常に一般的ですが、「オブジェクト指向」形式であるため、
(1) dir, opendir
使用法:
$d = dir("ディレクトリ名");
$handle = opendir("ディレクトリ名"); 前者はディレクトリ オブジェクトを返します。前者はディレクトリ ハンドルを返します。オブジェクトにはハンドルとパスという 2 つの属性があり、最初の属性は opendir によって返されるハンドルと同等であり、2 番目の属性はディレクトリ名自体を使用します。
(2)read、readdir、rewind、rewinddir、close、closedir
3 つのグループのそれぞれの最初のものは、ディレクトリ オブジェクトのメソッドです。 "Object->Method()" で、後者は "関数" 名 (ディレクトリ ハンドル)" 呼び出しで呼び出される関数です。 read は返されたディレクトリ内の次のファイル名です。 rewind は最初のファイル名ですclose はディレクトリを閉じることです
(3)chdir
PHP の作業ディレクトリを変換します
PHP には非常に多くの time 関数があります。 (1) date
使用法:
date(format, [time]);
time パラメーターがない場合は、現在の時刻を使用します。この形式は、次の文字が特別な意味を持つ文字列です。 U は開始時刻からの秒数 (1970 年 1 月 1 日など) に置き換えられます。 Y は 4 桁の年番号に置き換えられます。
y は 2 桁の年番号に置き換えられます。
F は に置き換えられます。月の完全な英語名
m は、月の数字に置き換えられます。
z は、その年の 1 月 1 日からの日数に置き換えられます。
d 日数に置き換えます。
l 曜日の完全な英語名に置き換えます。
D 曜日の英語の略語に置き換えます。
w 曜日に置き換えます。週 (数値)
h 時間 (12 時間形式) に置き換えます。
s 秒に置き換えます。 「AM」または「PM」。
a は「am」または「pm」に置き換えられます。
S は「st」、「nd」、「rd」、「th」などの序数接尾辞に置き換えられます。
この関数は、置換された形式の文字列を返します。
(2)getdate(time)
各添字は次のとおりです。
"hours" -- 時間数
"mday" -- 日数
"mon" -- 月数
"year" -- 年数
"yday" -- 経過した日数1 月 1 日
"weekday" -- 週数 Month、完全な英語名
"month" -- 月、完全な英語名
(3)gmdate
日付と似ていますが、最初に時刻をグリニッジに変換します平均時間
(4)mktime
Usage:
mktime (時、分、秒、月、日、年);
(5)time
Usage を返します。 :
time(); 1970 年 1 月 1 日の午前 0 時からの秒数を返します。
(6)microtime
Usage:
microtime(); を返します。 by 1 つの部分は time()
の戻り値に相当し、最初の部分はマイクロ秒数です
(7)checkdate
Usage:
checkdate(month, day, year); 論理値を返します。 true または論理 false の場合:
年が 1900 から 32767 の間である (両端を含む)。
月が 1 から 12 の間である (閏年が考慮される)。 ;
は論理 true を返します。
(8)set_time_limit
使用法:
set_time_limit (秒数);
は、この文の実行時から指定された秒数以内にプログラムを終了する必要があると規定します。タイムアウトになると、プログラムはエラーで終了します。
画像関数
PHP には、gif 形式で画像データ ストリームを動的に生成し、サーバーに出力できる一連の画像関数があります。 Unix 環境の場合、システムが gd ライブラリをサポートしている必要があります。まず、gd のソース コードを取得してコンパイルし、libgd.a といくつかの .h ファイルを生成します。これらをシステムのライブラリ ディレクトリとヘッダ ファイル ディレクトリ (/usr/lib や /usr/include など) にそれぞれコピーします。Windows の場合は、PHP3.0 のインストール プログラムによって gd.dll ファイルがインストールされます。 ("gd.dll");' 画像関数を使用するプログラム内で
主な画像関数は次のとおりです:
(1)ImageCreate (Width, height) 戻り値
(2) ImageCreateFromgif (ファイル名);
画像記述子を返します。
GIF 画像には 256 色しか含まれないため、このステートメントは最初にパレット項目を割り当てる必要があります。
(4)ImageColorTransparent(画像記述子、色記述子);
(5)ImageArc (画像記述子、円の中心の横座標、円の中心の縦座標、楕円の幅、楕円の高さ、開始角度、終了角度、カラー記述子);
ImageChar(画像記述子、フォント、x、y、文字、色記述子);
ImageCharUp(画像記述子、フォント、x、y、文字、カラー記述子);
ImageCopyResize(ターゲット画像記述子, ソース画像記述子, ターゲット x, ターゲット y, ソース x, ソース y, ターゲット幅, ターゲット高さ, ソース幅, ソース高さ);
ImageDashedLine(画像記述子, x1, y1, x2 , y2, カラー記述子);
ImageFill (画像記述子, 開始点 x, 開始点 y, カラー記述子);
ImageFilledPolygon (画像記述子, 各頂点配列, 頂点数, カラー記述子); ImageFilledRectangle(画像記述子, x1, y1, x2, y2, カラー記述子);
ImageFillToBorder(画像記述子, 開始点 x, 開始点 y, 境界線の色, 塗りつぶしの色);
ImageLine(画像記述子, x1, y1, x2, y2, カラー記述子);
ImagePolygon (画像記述子、各頂点配列、頂点の数、カラー記述子);
ImageRectangle (画像記述子、x1、y1、x2、y2、カラー記述子);画像記述子、x、y、色の記述子);
ImageString(画像記述子、フォント、x、y、文字列、色の記述子);
ImageStringUp(画像記述記号、フォント、x、y、文字列、色の記述子);
これらはすべて描画関数です。簡単に説明すると、ポリゴンの頂点配列には、最初の点 x、最初の点 y、2 番目の点 y が順に格納されます。
(6)ImageLoadFont (ファイル名);
ファイルは、フォント番号 1 ~ 5 を返すビットマップ フォント ファイルである必要があり、直接使用できます。 ImageSX, ImageSY
画像の幅と高さをそれぞれ取得し、画像記述子パラメータを受け取る
(8)ImageColorAt (画像記述子, x, y)
ImageColorClosest(画像記述子, red, green,青);
ImageColorExact(画像記述子、赤、緑、青);
ImageColorSet(画像記述子、赤、緑、青);ImageColorsForIndex(画像記述子, カラー記述子);
ImageColorsTotal(画像記述子); 最初の 3 つはカラー記述子を返します。
ImageColorsForIndex は 3 つの項目を返します。 、緑、青の値を返します。
(9)ImageFontHeight、ImageFontWidth
(10)ImageGif (画像説明記号、 [ファイル名]);
ファイル名がない場合は、プログラムの先頭に「Header("Content-type: image」という文があればブラウザにgifデータストリームが送信されます。 /gif")
(11)ImageDestroy (画像記述子);
image 関数には小さなバグがあります (少なくとも、PHP3.0RC および PHP3.0RC3 For Unix のソース コードで見つかっています。 www.php.net のダウンロード ファイルは変更されているはずです)。つまり、ImageSetPixel は、関数の値に関係なく、常に (y, y) に点を描画します。その特徴は、組み込みサポートがあることです。
Perl と Tcl も一般的に使用されるクロスプラットフォーム言語であり、どちらも強力な文字機能を備えており、前者の方がパフォーマンスが高いものもあります。 GUI 機能はすべてデータベースをサポートするように拡張できますが、アプリケーションにクロスプラットフォーム機能を持たせたい場合は、Unix プラットフォームなどのさまざまなプラットフォームで拡張する必要があります。 Windows 95/NT では、Win32::ODBC パッケージを Perl に変換します。PHP は、さまざまなデータベースへのアクセス機能を備えているため、プログラマーにとっては非常に面倒なことです。たとえば、SQL に基づくデータベースは、dBase や dbm と同じ方法ではアクセスできないことは明らかです。次の MiniSql および MySql データベースのアクセス関数については、以下で詳しく紹介します。 SQL ) は小規模なリレーショナル データベースであり、パフォーマンスはあまり良くなく、SQL 言語のサポートは十分ではありませんが、一部のネットワーク データベース アプリケーションでは十分です。
MySQL は mSQL の一種であり、パフォーマンスは向上しています。どちらのデータベースも SQL 言語を通じてアクセスされますが、MySQL は基本的にすべての SQL92 仕様をサポートしていますが、「select ... where select ..」はサポートされていません。また、一部のデータ型が拡張されています。一方、mSQL は基本的にサポートします。ネストされた SQL ステートメントはサポートしません。また、「update set column1=column1-1」などのステートメントもサポートしません。
mSQL は単純であるため、単純な SQL ステートメントを実行する場合は MySQL よりわずかに高速です。 MySQL はスレッドを使用し、インデックスに熱心に取り組んでおり、複雑な SQL ステートメントを実行する場合、mSQL、PostgreSQL、Oracle などよりも高速です。セキュリティの観点から、mSQL は ACL を通じて各ホストの各ユーザーのアクセス権限を設定します。デフォルトはすべて読み取り/書き込みで、MySQL は認証ライブラリを通じてユーザー名、パスワード、アクセス権を設定しますが、一部の mSQL のストレージ容量は、によって制限されます。たとえば、Linux では 2G を超えることはできません (3G ですか? はっきり覚えていませんか?)
mSQL と MySQL は基本的に似たものなので、PHP でのアクセス ステートメントも似ています。 msql_close と mysql_close はそれぞれ同じ終了アクションを完了します。 したがって、以下の導入では、mysql、msql のみを紹介します。アクセス ステートメントはプレフィックスに変更するだけです (特別な状況については別途説明します)。 注: mSQL と MySQL の両方。アクセス関数を実行するには、対応する権限が必要です。
(1) mysql_connect (ホスト、ユーザー名、パスワード) ;
接続番号を返します
注: 各 mysql ユーザーのパスワードは、マシンの IP アドレスに応じて変更できます。さらに、mSQL にはユーザー名のメカニズムがないため、msql_connect には 1 つのホスト パラメーターのみが必要です。
(2) mysql_create_db (データベース名)。
(3) mysql_select_db (データベース名、接続番号); (4)mysql_query (SQL ステートメント、接続番号)
SQL ステートメントが select の場合、結果番号を返します。返された値は無視できます。
失敗した場合は false を返します。
(5) mysql_fetch_array (結果番号);
次の行は、数値の添字を使用してアクセスできます。フィールドが添字 0) または文字列添字 (つまり、各フィールドの名前を使用する) の場合、
が返されます。(6) mysql_fetch_field (結果番号, [フィールド番号]);
フィールド番号がない場合は、name、table、max_length、not_null、primary_key、unique_key、multiple_key、の添え字を持つハッシュ テーブルを返します。 numeric、blob、type、unsigned、zerofill 各添え字の意味は比較的明確であるはずです
(7)mysql_num_rows (結果番号);mysql_num_fields (結果番号)
(8)mysql_free_result (結果番号) ;
(9)mysql_list_dbs();mysql_list_tables(データベース名);
(11)mysql_ pconnect(ホスト、ユーザー名、パスワード);
mysql_connect は完全に似ていますが、一度確立されると、たとえ mysql_close 関数が使用されたり、プログラムが実行されたりしても、接続は閉じられません。システムは永続的な接続が既に存在することを検出した場合、再作成せずに接続番号を直接返します。