ホームページ >php教程 >php手册 >PHP で大規模な Web サイトを作成するための問題集

PHP で大規模な Web サイトを作成するための問題集

WBOY
WBOYオリジナル
2016-06-21 09:10:24733ブラウズ

質問

PHPはその使いやすさから急速に普及していますが、使いやすいということは使いこなせるということではなく、実際にWEBアプリケーションシステムを簡単に構築するために多くのプログラマが利用していますが、それをよく検討している人はどれくらいいるでしょうか。コードは保守が容易で、十分に堅牢で、十分に効率的で、十分に安全であるため、これらは PHP を使用して大規模な Web サイトを構築する場合に重要な要素になります。より小さな問題から始めて、いくつかの致命的な間違いに移りましょう。 3 つの部分に分かれています。

最初の部分、マイナーエラー

1. Printf()、
この関数は主にデータのフォーマットと表示に使用されます。特定のデータの表示形式を変更したい場合にのみ使用してください。たとえば、PI の値 (3.1415926) をさまざまな精度で表示します。

/*
* Πの3つの顔
*/
printf ("Pi is: %.2fn
n", M_PI);
printf ("Pi is also: %.3fn
); br>n", M_PI);
printf ("Pi is also: %.4fn
n", M_PI);
?>

しかし、多くのプログラマーは、これをいくつかの変数値を表示するためにのみ使用します。関数の戻り値。 Printf() はデータを表示する前にデータを整形するため、速度が遅くなります。そのため、データを表示する場合にのみ print と echo を使用して高速化します。

2. セマンティック チェック
PHP は弱い型指定の言語であるため、使用する前に変数を定義する必要はありませんが、変数の型を知っておく必要があります。なぜなら、変数は実行時に実際には依然として特定の型に対応しており (さまざまな型を相互に自由に変換できます)、型のない変数は存在しないからです。 PHP がセマンティック エラーを検出できない可能性もありますが、変数の型の変更により、潜在的な問題が発生する可能性があります。注目に値するもう 1 つの問題は変数のスコープであり、これも潜在的な問題を引き起こす可能性があります。

PHP には次の基本変数があります:
ブール、リソース、整数、倍精度、文字列、配列、オブジェクト。

3.一時変数の使用
一時変数の乱用はプログラムの動作効率の低下につながります。一時変数をいつ使用するかは、次の 2 つの考慮事項に基づいて決定できます:

1. 変数が少なくとも 2 回使用されるかどうか。
2. この変数を使用するとプログラムの可読性が大幅に向上するかどうか。

上記のいずれも満たされない場合、この変数の使用は省略されます。例:

$tmp = date ("F d, h:i a"); /* つまり、1 月 3 日の午後 2 時 30 分 */

?> となります。に変更されました:

print date ("F d, h:i a");

別の例:

// string reverse_characters(string str)
//文字列内のすべての文字を反転します
function reverse_characters ($str)
return implode ("", array_reverse (preg_split("//", $str))); readable 文字が強くない場合は、次のように変更できます:

// string reverse_characters(string str)
// 文字列内のすべての文字を反転します
function reverse_characters ($str)
{
$characters = preg_split ( "//", $str);
$characters = array_reverse ($characters);
}
?> 4.サーバーサイドコード
クライアント PHP プログラムのエンドサイドコードとサーバーサイドコードは、実際には HTML コードと PHP 言語コードを 1 つのファイルに混在させることが多く、ファイルが非常に大きくなります。プログラムのメンテナンスや再開発には不利であり、大規模なサイトの開発には適していません。一般に、HTML ステートメントと PHP ステートメントを分離するには 2 つの方法があります:

1.

index.php? などの専用 API を作成します。クライアント側



"0">

print_body ();

サーバー側のコード

$dbh = mysql_connect ("localhost", "sh", "pass") または die (sprintf ("Cannot connect to MySQL [%s]: %s", mysql_errno () , mysql_error ()));
@mysql_select_db ("MainSite") または die (sprintf ("データベース [%s] を選択できません: %s",mysql_errno (), mysql_error ());$sth = @mysql_query ("SELECT * FROM site", $dbh) または die (sprintf ("クエリ [%s] を実行できません: %s", mysql_errno (), mysql_error ())); ($sth);

function print_header ()
{
global $site_info->header;

function print_body ()
print nl2br; ;body);
}

function print_links ()
{
global $site_info;

$links =explode ("n", $site_info); ->link_names);

for ($i = 0; $i < count ($links); $i++)
{
print "ttt $ names[$i] n
n";
}
}
?>

このメソッドにより、プログラムがより単純に見え、実行が高速になります。


2. テンプレートを使用する方法

この方法では、プログラムをより簡潔に見せるために、次のコードを使用することもできます。 %PAGE_TITLE% %


;/td>
%%PAGE_LINKS%%



動的に生成されるコンテンツを使用してテンプレートを分析しますファイルに保存され、文字が実際のコンテンツに置き換えられます。この方法を使用すると、PHP を使用しないページ開発者でもテンプレート ファイルを変更できます。この方法の欠点は、テンプレートファイルを解釈する必要があるため、実行効率が高くないことです。同時に、実装もより複雑になります。

注: www.thewebmasters.net の FastTemplate クラスは、上記の機能を簡単に実装できます。

5. 古い関数を使用しないでください

PHP はフリー ソフトウェアとして急速に開発されており、次のような関数が多くあります。

while (1):
print "5"; idx++ == 5):
break;
endif;
endwhile;

これはまだ使用できますが、明らかに効率的ではなく、将来のバージョンでは無効になり、プログラムが実行されなくなる可能性があります。したがって、常に最新の PHP マニュアルを参照して、どの関数が古くなっているのかを確認し、適時に修正する必要があります。







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