基本的な PHP 面接の質問
1. トラフィックが多い Web サイトの場合、トラフィックの問題を解決するためにどのような方法を使用しますか?
まず、サーバー ハードウェアが PHP をサポートするのに十分であるかどうかを確認します。現在のトラフィック
次に、データベース アクセスを最適化します。
第三に、外部ホットリンクは禁止されています。
4 番目に、大きなファイルのダウンロードを制御します。
5 番目に、別のホストを使用してメインのトラフィックを迂回します。
6 つ目は、トラフィック分析および統計ソフトウェアを使用することです。
2. PHP を使用して、クライアント IP とサーバー IP を表示するコードを記述します。
//クライアント IP を表示します
function get_client_ip() {#
if(getenv('HTTP_CLIENT_IP')) {
$client_ip = getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR')) {
$client_ip = getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('REMOTE_ADDR')) {
$client_ip = getenv('REMOTE_ADDR');
} else {
$client_ip = $HTTP_SERVER_VAR['REMOTE_ADDR'];
}
return $client_ip;
}
//サーバー IP
function get_server_ip(){
if (isset($_SERVER))
{
if($_SERVER['SERVER_ADDR ' ]) $huoqu_ip=$_SERVER['SERVER_ADDR'];
else $huoqu_ip=$_SERVER['LOCAL_ADDR'];
}
else
{
$huoqu_ip=getenv('SERVER_ADDR');
}
return $huoqu_ip;
}
3 . MYsqlプログラミングの面接の質問。
(1) コンテンツ管理システムでは、メッセージ テーブルに次のフィールドがあります:
id 記事 ID
タイトル 記事タイトル
コンテンツ 記事コンテンツ
category_id 記事カテゴリ ID
クリック数
上記のテーブルを作成し、MySQL ステートメントを記述します。
CREATE TABLE 'message'(
id int(11) NOT NULL auto_increment、
title varchar(200) デフォルト NULL、
content blob、
category_id int(11) デフォルト NULL、
hits int(11) デフォルト NULL,
PRIMARY KEY('id')
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
(2)同じニュースは上記と同様 公開システム: コメント テーブルにはユーザーの返信コンテンツが記録されます。フィールドは次のとおりです:
comment_id Reply id
id 記事 ID。メッセージ テーブル
に関連付けられています。comment_content 返信コンテンツ
次に、データベースにクエリを実行して、次の形式で記事タイトルのリストを取得し、返信数の多い順に並べ替える必要があります
記事 ID 記事タイトルのクリック数 返信数
SQL ステートメントを使用して上記のクエリを完了します。記事に返信がない場合、返信数は 0
SELECT メッセージとして表示されます。 .id id,message.title title,IF(message.`hits` IS NULL,0,message.`hits `)
hits,IF(comment.`id` is NULL,0,count(* ))number
FROM message LEFT JOIN comment ON message.id=comment.id
GROUP BY message.`id`
(3) 上記コンテンツ管理システムにおいて、テーブル category は分類情報を保存します。フィールドは次のとおりです (3 点)
category_id int(4) not null auto_increment ;
categroy_name varchar(40) not null;
ユーザーが記事を入力するとき、ドロップダウン メニューを選択して記事カテゴリを選択します
このドロップダウン メニューの実装方法を記述します
function categoryList()
{
$result=mysql_query("カテゴリから category_id,categroy_name を選択")
or die("無効なクエリ: " . mysql_error ());
print( "");
}