ホームページ >バックエンド開発 >PHPチュートリアル >大規模な Web サイトの PHP 作成問題セット_PHP チュートリアル

大規模な Web サイトの PHP 作成問題セット_PHP チュートリアル

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

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

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

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

/*
* Πの3つの顔
*/

printf ("Pi is: %.2fn
n" , M_PI) ;
printf ("Pi も: %.3fn
n", M_PI);
しかし、多くのプログラマは、この関数を一部の変数値や関数の戻り値を表示するためだけに使用しています。 Printf() はデータを表示する前にフォーマットする必要があるため、速度が遅くなります。そのため、速度を向上させるためにデータを表示する場合にのみ print と echo を使用します。

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




コードをコピーする
コードは次のとおりです: ブール値、リソース、整数、double、文字列、配列、オブジェクト
3. 一時変数の使用
一時変数 乱用するとプログラムの動作効率が低下します。一時変数をいつ使用するかは、次の 2 つの点に基づいて検討できます。
1. 変数が少なくとも 2 回使用されているかどうか。
2. この変数を使用するとプログラムの可読性が大幅に向上するかどうか。
上記のいずれも満たされない場合、この変数の使用は省略されます。例:



コードをコピー
コードは次のとおりです: $tmp = date ("F d, h:i a") /* ie 1 月 3 日、午後 2 時 30 分*/
print $tmp;> ;


別の例:


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

// string reverse_characters(string str) / / 文字列内のすべての文字を反転します。 function reverse_characters ($str)
{ return implode ("", array_reverse (preg_split("//", $str)));
あまり読みにくいので、次のように変更できます:



コードをコピー

コードは次のとおりです:
// string reverse_characters(string str) // すべてを反転します。
function reverse_characters ($str)
{
$characters = preg_split ("//", $str);

return implode ("", $characters); ;
}

?>


4. クライアント側のコードとサーバー側のコードの分離
PHP プログラムのクライアント側コードとサーバー側コードは、実際には HTML コードと PHP 言語コードを混合しています。 1 つのファイルにまとめると、ファイルが非常に大きくなります。このスタイルはプログラムのメンテナンスと再開発に非常に悪影響を与えるため、大規模なサイトの開発には適していません。一般に、HTML ステートメントと PHP ステートメントを分離するには 2 つの方法があります:
1. 専用の API を作成します (例:

index.php) クライアント側
コードをコピーします コードは次のとおりです:



<頭>
<タイトル>

<ボディ>











site.lib サーバー側コード
复制代码代码如下:


$dbh = mysql_connect ("localhost", "sh", "pass")
or die (sprintf ("MySQL [%s] に接続できません: %s",
mysql_errno (), mysql_error ()));
@mysql_select_db ("MainSite")
or die (sprintf ("データベース [%s] を選択できません: %s",
mysql_errno (), mysql_error ()));

$sth = @mysql_query ("SELECT * FROM site", $dbh)
or die (sprintf ("クエリ [%s] を実行できません: %s",
mysql_errno (), mysql_error ()));

$site_info = mysql_fetch_object ($sth);

function print_header ()
{
global $site_info;
$site_info->header; を印刷します。
}

function print_body ()
{
global $site_info;
print nl2br ($site_info->body);
}

function print_links ()
{
global $site_info;

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

for ($i = 0; $i < count ($links); $i++)
{
print "ttt
$names[$i]
;n>n";
}
}
?>
この方法では、プログラムがより丁寧に見え、実行速度も速くなります。


复制代码

代码如下:
%%PAGE_TITLE%%
<ボディ %%BODY_PROPERTIES%%>

%%PAGE_TITLE%%
















自動的に生成されるコンテンツをビット記号に置き換え、その後、解析プログラムを使用してそのモールド ファイルを分析し、ビット記号を使用したコンテンツを置き換えることができます。この方法の欠点は、モジュール ファイルを解釈するため、実行効率が低いことです。

五、不要用過時関数数
一自由软件,PHP公開展很快,その中の很多関数数都已过時,例:


复制代码

代码如下:

while (1): 「5」を印刷します。 if ($idx++ == 5): break; 終わり;
終わりに。

も使用可能ですが、効率は高くなく、後続のバージョンで使用され、プログラムが実行できなくなる可能性があるため、最新の PHP を定期的に手動で検出し、修正する必要があります。



http://www.bkjia.com/PHPjc/321838.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/321838.html

PHP はその使いやすさで急速に普及していますが、使いやすさが優れているというわけではなく、多くのプログラムが非常に使いやすい Web アプリケーション システムとして評価されていますが、さらに多くのユーザーに配慮しています。 .
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
%%PAGE_LINKS%% %%PAGE_CONTENT%%