ホームページ  >  記事  >  バックエンド開発  >  大企業の PHP 面接の質問、企業の PHP 面接の質問_PHP チュートリアル

大企業の PHP 面接の質問、企業の PHP 面接の質問_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:16:091848ブラウズ

大企業の PHP 面接の質問、企業の PHP 面接の質問

1. COOKIE を無効にしても SEESION は引き続き機能しますか?

2. リモート画像をローカルにキャプチャするには、どの機能を使用しますか?

4. pV10W の同じ構成では、LUNIX は WIN よりもはるかに高速だと思いますか?

5. POST および GET 送信の最大容量をそれぞれ簡単に説明します。

6. 最小限のコードを使用して、3 つの値の最大値を見つける関数を作成します。

答えの一部を添付します(正解であることを保証するものではありません)

1.
2 fsockopen

ができません

4 (最適化なしでも同じ)
5 2MB,1024B
6 function($a,$b,$c){
return $a>$b? ($a>$c? $a : $c ) : ($ b>$c? $b : $c );
}

————————————————————————————–

大企業からの pHp 面接の質問

2. 2 つの日付の差を見つけます。たとえば、2007-2-5 から 2007-3-6 までの日付の差を見つけます
$begin=strtotime('2007-2-5');
$end=strtotime(' 2007 -3-6′);
エコー ($end-$begin)/(24*3600);

3. 次の機能を実現する関数を作成してください:
文字列「open_door」を「OpenDoor」に、「make_by_id」を「MakeById」に変換します。
function str_change($str) {
$str = str_replace ( “_”, “ “, $str );
$str = ucwords ( $str );
$str = str_replace ( “ “, “”, $str ) ;
$str を返す }

4. 次の配列 $arr1 を配列 $arr2 に変換するプログラムを作成する必要があります:
$arr1 = array (
'0' => array ('fid' => 1, 'tid' =>) ; 1, 'name' =>'Name1' ),
'1' => 配列 ('fid' => 1, 'tid' => 2 , 'name' =>'Name2' ),
'2 ' => 配列 ('fid' => 1, 'tid' => 5 , 'name' =>'Name3' ),
'3' => 配列 ('fid' => ; 1, 'tid' => 7 , 'name' =>'Name4' ),
'4' => 配列 ('fid' => 3, 'tid' => 9, 'name' => '名前5' )
);
$arr2 = 配列 (
'0' => 配列 (
'0' => 配列 ( 'tid' => 1, '名前' => '名前1) ')、
'1' => 配列 ( 'tid' => 2, 'name' => 'Name2')、
'2' => 配列 ( 'tid' => '名前' => '名前3'),
'3' => 配列 ( 'tid' => '名前' => '名前4') ),
'1' => ' => ; 配列 ( 'tid' => 9, 'name' => 'Name5' ) );

$arr1 = array (
'0′ => array ('fid' => 1, 'tid' => 1, 'name' =>'Name1' ),
'1 ' => 配列 ('fid' => 1, 'tid' => 2 , 'name' =>'Name2' ),
'2' => 配列 ('fid' => 1, 'tid' => 5 , 'name' =>'Name3' ),
'3' => array ('fid' => 1, 'tid' => 7 , 'name' => 'Name4' ),
'4' => array ('fid' => 3, 'tid' => 9, 'name' =>'Name5' )
);
function changeArrayStyle($arr) {
foreach($arr as $key=>$value){
$result[$value[fid]][]=$value;
}
return array_values($result);
}
$arr2=changeArrayStyle( $arr1);
echo “
”;
var_dump($arr2);
?>
5. データベース設計のパラダイムと応用について簡単に説明してください。

一般に、テーブル構造の最適化には第 3 正規形で十分です。これにより、アプリケーションが複雑になりすぎることを回避できるだけでなく、SQL ステートメントが大きすぎることによって引き起こされるシステムの非効率性も回避できます。
答え:
第一正規形: 関係パターン R の各属性が既約であれば、それは第一正規形に属します。
第 2 正規形: R が第 1 正規形に属し、すべての非コード属性が機能的にコード属性に完全に依存している場合、R は第 2 正規形になります。
第 3 正規形: R が第 2 正規形に属し、非コード属性のいずれも候補コードに依存する伝達関数ではない場合、R は第 3 正規形に属します。

6. テーブル内に複数の ID のレコードがあります。この ID のすべてのレコードを検索し、SQL ステートメント、ビュー、ストアド プロシージャを使用してこれを実装します。
ストアド プロシージャ:
DELIMITER //
create プロシージャ proc_countNum(in columnId int,out rowsNo int)
begin
select count(*) into rowsNo from member where member_id=columnId;
end
call proc_countNum(1,@no);
@いいえを選択してください;

ビュー:
ビュー v_countNum を作成し、member_id によるメンバー グループから countNum として member_id,count(*) を選択します
member_id=1 の v_countNum から countNum を選択します

7 テーブルには 3 つの列 A、B、C があり、SQL ステートメントを使用して実装されます。列 A が列 B より大きい場合は列 A を選択し、そうでない場合は列 B を選択し、列 B が列 C より大きい場合は、列 B を選択し、それ以外の場合は列 C を選択します。
選択
case
first_name>middle_nameの場合
case when first_name>last_name then first_name
else last_name end
else
case when middle_name>last_name then middle_name else last_name
end
メンバーからの名前
として終了

8 プロジェクト内の SQL ステートメントの実行効率を最適化する方法を簡単に説明してください。どのような観点から SQL ステートメントのパフォーマンスを分析するか?
SQL の最適化は役に立たないため、インデックスを直接追加する方がよいでしょう。

9 テンプレートが Smarty テンプレートの場合。セクションステートメントを使用して $data という名前の配列を表示する方法。例:
$data = array(
[0] => array( [id]=8 [name]='name1')
[1] => array( [id]=10 [name]=' name2 ')
[2] => array( [id]=15 [name]='name3')
......
)
テンプレートページにコードを書きますか? foreach文を使用する場合、どのように表示すればよいでしょうか?
{セクション名=loop ループ=$data}
{$data[loop].id}
{$data[loop].name}
{/section}

{foreach from=$data item=id key=k}
{$k} – {$id}
{/foreach}

10 フォルダー内のすべてのファイルとサブフォルダーを走査できる関数を作成します。 (ディレクトリ操作)
$d = dir(dirname(__file__));
//echo “ハンドル: ” . $d->handle . “\n”;
//echo “パス: ” . $d->path . “\n”;
while ( false !== ($entry = $d->read ()) ) {
echo $entry . }
$d->close ();
?>
11 2 つのテーブル、市テーブルと州テーブル。それぞれ都市と県の関係表です。
市:
ID 省ID
1 広州1
2 深セン1
3 恵州1
4 長沙2
5 武漢3
………。 州:
省ID
1 広東
2 湖南
3 湖北
… …….
( 1) 2 つのテーブルを関連付ける SQL ステートメントを作成して、都市の基本情報を表示します。 ?
(2) 表示フィールド: 都市ID、都市名、都道府県。
例:
Id (都市ID) Cityname (都市名) プライバシー (州)
。 。 。 。 。 。 。 。 。
。 。 。 。 。 。 。 。 。
(2) 各州にある都市の数を数えたい場合は、group by を使用してクエリしてください。 ?
表示フィールド: 州ID、州名、含まれる都市の数。
答え:
1.A.provinceid=B.idである都市A、州BからA.id、A.Cityname、B.provinceを選択します
2.数値としてB.id、B.province、count(*)を選択しますfrom city A,province B where A.provinceid=B.id group by B.id
12. あなたの経験に基づいて、ソフトウェアエンジニアリングにおけるソフトウェア開発の手順を簡単に説明してください。 Rational Rose、powerDesigner、プロジェクト、VSS または CVS、TestDirector のどれを使用しましたか? 欠点は何ですか?
同社は dbdesigner と cvs を使用し、テスト管理ツールは Mantis を使用しています
13 オペレーティング システムのスレッドとプロセスの違いについて簡単に説明してください。 LINUX で使用したソフトウェアをリストしてください。

14. 次のデータセット 10 2 36 14 10 25 23 85 99 45 をソートするには、疑似言語とデータ構造バブル ソート方法を組み合わせて使用​​してください。

$a = array(10,2,36,14,10,25,23,85,99,45);

for($j=0; $jfor($i=0 ; $iif($a[$i] > $a[$i+1]) {
$t = $a[$i] ;
$a[$i] ] = $a[$i+1] ;
$a[$i+1] = $t ; }
echo var_dump($a);
———————————————— —————————–

——————————————————————————–

——————————————————————————–

Sina PHP エンジニア面接質問集
1. COOKIE と SESSION の関係と違い 複数の Web サーバーはどのように SESSION を共有しますか?
2. HTTP プロトコルの pOST と GET の違いは何ですか?
3. 出力結果を書き込むための php コード:
/****このアプリ****/
$a=0;
$b=0;
if(($a=3)>0||( $b =3)>0){
$a++;
$b++;
echo $a ;
echo $b; // b の値を出力します ($a=4 ,$b=1) $b=3は実行されません
}
4. リクエストとリクエストの両方にファイルを含めることができます。この 2 つの違いは何ですか?

5. PHP におけるファイルの WEB アップロードの原理は何ですか? アップロードされるファイルのサイズを制限するにはどうすればよいですか?
is_uploaded_file() と move_uploaded_file()

6. フォルダー内のすべてのファイルとフォルダーを走査できる関数を作成します。
7、8. 真ん中にいくつかの Unix シェルの質問があります (覚えていないので、これらの質問は覚えていません)。理解できません
9 、文書 mail.log があり、内容は多数の電子メール アドレスであり、電子メール アドレスは '\n' で区切られています。 sina.com の電子メール アドレスの選択を要求します (ファイルからの読み取り、フィルタリングから印刷までを含む)。
mail.log の内容は次のとおりです:
james@sina.com.cn
jack@163.com
zhansan@sohu.com
lisi@hotmail.com
wangwu@gmail.com

10. js での Web ページの前後方向のコード (前方:history.forward();=history.go(1);後方:history.back();=history.go(-1); )
11. window (A)で、window.open()でウィンドウ(B)を開きます。ウィンドウBからウィンドウAの内容を呼び出すにはどうすればよいでしょうか? AとBはWindowsの名前ではなく、単なるコード名です
12をご存知ですか?使ったことがありますか? …
13. MVCとは何ですか?使ったことがありますか?使用中にどのような問題が発生し、どのように解決しましたか?
14. http://www.sina.com.cn にアクセスするために必要なメッセージ ヘッダーを書き出します。これは Super Pig が覚えたものです。 md5_file()

——————————————————————————–

——————————————————————————–

——————————————————————————–

最新の新浪 pHp インタビューの質問 (2009.3)

1. echo count("abc"); 何を出力しますか?
答え: 1

2. pHp を使用して、クライアント IP とサーバー IP を表示するコードを作成します。
サーバー側 getenv('SERVER_ADDR'); );

3. error_reporting(2047) は何をしますか?

答え: error_reporting(‘E_ALL’) と同等です

4. pHp と JSp の相互作用を実現するには?

質問は少し曖昧です。pHp と Java の統合をテストしている場合、SOAp、XML_RpC、ソケット関数、および CURL はすべてこれらを実現できます (pHp と Java の統合をテストしている場合)。 .NET の場合は、このように答えることもできます)、たとえば $foo = new Java('java.lang.System');

5. php.ini で Safe_mode をオンにするとどのようなパラメータが影響を受けますか?少なくとも6つの名前を付けてください。

回答: このモジュールを開くと、PHP は現在のスクリプトの所有者が操作中のファイルの所有者と同じであるかどうかを確認するため、ファイル操作機能とプログラム実行機能 (プログラム実行機能) に影響します。これらの関数には、.pathinfo、basename、fopen、system、exec、proc_open およびその他の関数が含まれます。
7. メールの形式が正しいかどうかを確認する関数を作成してください (正規表現が必要です)

function checkEmail($mail){


$reg = '/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/';

$ rst = preg_match($reg , $mail);

if($rst){
return TRUE;
}else {
return FALSE;
}
}

11. 2 次元配列をソートする関数を作成します。

array_multisort()


12. 独自の 5 つの異なる関数を作成して、フルパスのファイル拡張子をインターセプトし、PHP ライブラリ内の既存の関数をカプセル化できるようにします。

13. 猿のグループが円形に並び、1、2、...、n に従って番号が付けられます。次に、1 番目から数え始め、m 番目まで数え、円の外に追い出し、後ろから数え始め、m 番目まで数え、追い出します...このようにして最後まで続けます。猿は一匹だけ残っており、その猿は王様と呼ばれています。このプロセスをシミュレートするには、m、nを入力し、最後の王の番号を出力するプログラミングが必要です

7. MYSQL データベースを最適化する方法。

(1). データベース設計に関しては、これは DBA とアーキテクトの責任です。必要に応じて、データベースを非正規化します (英語は denormalize です。中国語の翻訳はわかりません)。システム アーキテクチャ設計の観点から、テーブル ハッシュは、大量のデータを複数の異なるテーブルにハッシュするために使用されます。高速テーブルと低速テーブルは履歴アーカイブです。クラスター、マスター サーバー読み取りおよび書き込み、スレーブ サーバー読み取り専用、または N サーバー、各マシンは相互にマスターです
(1) と (2) の要件を超えています。 pHp プログラマー、そのほうが良いでしょう、いいえ、問題ではありません。インデックス
(4) が少ないかどうかを確認し、デカルト積を生成する完全結合などの非効率な SQL ステートメントがないか確認してください。多数の Group By と order by、制限なしなど。必要に応じて、データベース ロジックを DBMS 側のストアド プロシージャにカプセル化して、クエリ結果をキャッシュし、各 SQL ステートメントを説明します
(5)。特定の記事をクエリするなど、必要なデータのみをデータベースから取得します。 select count(*) ... wherearticle_id = ? それだけです。次に、msql_num_rows.
たとえば、記事を変更する場合、ユーザーがタイトルのみを変更する場合は、次のように設定します。 )
(6)。たとえば、InnoDB は、クエリ速度を 1 桁向上させることができます。
————————————————————————

$s = ‘abc’;

if ($s==0)
echo ‘はゼロです
’;
else
echo ‘ゼロではありません’;
?>

多くの人は、答えが「ゼロではない」という文字列を出力することであると考えて、間違った答えをしていました。実際、正しい答えは文字列「is zero」を出力することです。

その理由は実は単純で、pHp は変数を「使用する前に最初に定義しなければならない」という必須要件がないため、代入の種類に応じて変数の型も柔軟に変更できます。この「柔軟性」は柔軟性があるように見えますが、実際にはエラーの隠れた危険性を生み出します。 $s = 'abc'; ステートメントは変数 $s を文字列型として定義しますが、if ($s==0) ステートメントでは $s が数値定数と比較されるため、$s は暗黙的に定義されます。今回は数値変数に変換すると値が0なので、$s==0の比較結果はtrueとなります。

この種の間違いを犯す人は、通常、Java、C などの言語から pHp 開発に切り替えたプログラマーです。Java、C などの言語は厳密に型指定された言語であるため、異なる種類の変数や定数を使用できません。この場合、構文エラーが報告されます。

実際、pHp 言語の開発者がこの種の問題に気づいていないわけではありません。pHp 言語には、比較の両側が一致する必要がある厳密な比較演算子「===」もあります。上記の if ($s== 0) ステートメントを if ($s===0) のように記述すると、上記のエラーは回避されます。

————————————————————————————–

$str=”cd”;

$$str=”ホットドッグ” //$cd

;

$$str.=”わかりました”;

エコー $cd //ホットドゴク

?>

————————————————————————————–

9. apache+mysql+phpで最大負荷を実現する方法

主に構成の最適化ファイル 、そして Linux で実行する方が Windows で実行するよりも優れています。

mkdir でディレクトリを作成し、タッチしてフォルダーを作成し、権限や chmod などを変更します。

51. pHp5権限制御修飾子(3点)を書いてください

private protected public


13. トラフィックが大きい Web サイトの場合、トラフィックの問題を解決するためにどのような方法を使用しますか? (4 つのポイント)

まず、サーバーのハードウェアが現在のトラフィックをサポートするのに十分であるかどうかを確認します。次に、データベース アクセスを最適化します。

第三に、外部ホットリンクは禁止されています。
4 番目に、大きなファイルのダウンロードを制御します。
第 5 に、メインのトラフィックを迂回するために別のホストを使用します。
第 6 に、トラフィック分析および統計ソフトウェアを使用します。

htmlspecialchars() 関数は、いくつかの事前定義された文字を HTML エンティティに変換します。

htmlentities() 関数は、文字を HTML エンティティに変換します。 (htmlentities() のエスケープはより徹底しています。)

SQL インジェクションは簡単に回避できます。第 1 章で述べたように、入力をフィルタリングし、出力をエスケープすることに固執する必要があります。 ————

microtime は現在のタイムスタンプを返し、mktime() は指定されたタイムスタンプを取得します

//このページのアドレス、現在のスクリプトの名前。

echo $_SERVER[pHp_SELF].”
”;

//現在のページにリンクされている前のページの URL アドレス:

echo $_SERVER[HTTp_REFERER ].”
”;

3. HTTP 1.0 では、ステータス コード 401 の意味は (4) です。「ファイルが見つかりません」というプロンプトが返された場合、ヘッダー関数を使用できます。

その発言は(5)です。

(4) 不正 (5) header(“HTTp/1.0 404 Not Found”);——ファイルが見つかりません
header(“HTTp/1.1 403 Forbidden”);——アクセスは許可されていません

7. ファイル http.conf に pHp をインストールします。まずステートメント (10) を使用して pHp モジュールを動的にロードします。次に、ステートメント (11) を使用して、拡張子 php を持つすべてのファイルを Apache スクリプトとして処理します。処理。

(10) LoadModule php5_module “c:/php/php5apache2.dll”
(11) AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php .php5 .php4 .php3 。 phtml

9. クラスの属性をシリアル化してセッションに保存できるため、後でクラス全体を復元できます。 使用する関数は (14) です。

serialize() /unserialize()


10. php.ini で (15) が on に設定されていない限り、関数のパラメーターは変数への参照にすることはできません。 )


大企業からの PHP 面接の質問

管理者へのリマインダー: この投稿は haowubai (2009-07-30) によって固定解除されました

1. PHP 環境変数を使用して Web ページのアドレスのコンテンツを取得する方法は? IPアドレスを取得するにはどうすればよいですか?
[php]
echo $_SERVER ['PHP_SELF'];
echo $_SERVER ['SERVER_ADDR'];
[/php]


2 2007-2-5 ~ 2007- など、2 つの日付の差を見つけます。 3-6の日付の差
[php]
$begin=strtotime('2007-2-5');
$end=strtotime('2007-3-6');
echo ($end-$begin) / (24*3600);
[/php]

3. 次の機能を実現する関数を作成してください:
文字列「open_door」を「OpenDoor」に、「make_by_id」を「MakeById」に変換します。
[php]
function changeStyle(& $str) {

/*$str = str_replace ( "_", " ", $str );
$str = ucwords ( $str );
$str = str_replace ( " ", "", $str );
return $str;*/

$arrStr=explode('_',$str);
foreach($arrStr as $key=>$value){
$arrStr[ $key]=strtoupper(substr($value,0,1)).substr($value,1);
}
return implode('',$arrStr);
}
$s = "open_door";
echo changeStyle ( $s );
[/php]

4. 次の配列 $arr1 を配列 $arr2 に変換するプログラムを作成する必要があります。
[php]$arr1 = array (
'0' => array (' fid' => 1, 'tid' => 1, 'name' =>'Name1' ),
'1' => array ('fid' => 1, 'tid' = > 2 , 'name' =>'Name2' ),
'2' => 配列 ('fid' => 1, 'tid' => 5 , 'name' =>'Name3' ) ,
' 3' => 配列 ('fid' => 1, 'tid' => 7 , 'name' =>'Name4' ),
'4' => > 3 , 'tid' => 9, 'name' =>'Name5' )
);
$arr2 = 配列...残りのテキスト>>




PHP の面接の質問は通常、書面で書かれますか、それともコンピューターで回答されますか?



筆記試験では手書きはなく、全てパソコン上で行われます。インタビューとは基礎知識を聞いたり、これまでの作品について聞いたりすることです

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

www.bkjia.com
tru​​e

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

大企業向けの PHP 面接の質問、企業の PHP 面接の質問 1. COOKIE を無効にしても SEESION は使用できますか? 2. リモートの画像をローカルにキャプチャするにはどのような機能を使用しますか? 4. pV10W でも同じ構成だと思いますか。 .. .
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。