ホームページ  >  記事  >  バックエンド開発  >  PHP 面接での優れた質問と回答

PHP 面接での優れた質問と回答

WBOY
WBOYオリジナル
2016-07-25 08:53:461067ブラウズ
  1. strrev($str)
  2. {
  3. $len=strlen($str);
  4. $newstr = '';
  5. for($i=$len;$i>=0;$i--)
  6. {
  7. $newstr .= $str{$i};
  8. }
  9. return $newstr;
  10. }
コードをコピー

15. 中国語の文字列を文字化けせずにインターセプトするメソッドを実装します。

答え: mb_substr()

16. PHP を使用して、「Zhang San」という名前のすべてのコンテンツを検索し、出力する簡単なクエリを作成します。

  1. 名前ユーザー
  2. 名前電話内容日付
  3. Zhang San 13333663366 大学卒業 2006-10-11
  4. Zhang San 13612312331 学部卒業 2006-10-15
  5. Zhang Si 021-55665566中等学校卒業 2006 -10-15
  6. 答え: select name,tel,content,date from user where name='张三'
コードをコピー
17. 次のクラスの使用方法とその意味を説明します。

  1. クラステスト
  2. {
  3. get_test($num)
  4. {
  5. $num=md5(md5($num)."en");
  6. return $num;
  7. }
  8. }
コードをコピー
答え: 使用法: $get_test = 新しいテスト(); $result = $get_test->get_test(2);

$num 変数は 2 回 md5 されて返されます。2 番目の md5 のパラメーターは、最初の md5($num) の後に en が追加されます。

18. ファイルの拡張子を取得するには 5 つ以上の方法を使用します

必須: dir/upload.image.jpg、.jpg または jpg を見つけてください、

答え: ファイルの拡張子を取得するには、5 つ以上のメソッドを使用します。

  1. 1)

  2. get_ext1($file_name)
  3. {
  4. return strrchr($file_name, '.');
  5. }
  6. 2)
  7. get_ext2($file_name)
  8. {
  9. return substr( $file_name, strrpos($file_name, '.'));
  10. }
  11. 3)
  12. get_ext3($file_name)
  13. {
  14. return array_pop(explode('.', $file_name));
  15. }

  16. 4)

  17. get_ext4($file_name)
  18. {
  19. $p = pathinfo($file_name);
  20. return $p['extension'];
  21. }
  22. 5)
  23. get_ext5($file_name)
  24. {
  25. return strrev (substr(strrev($file_name), 0, strpos(strrev($file_name), '.')));
  26. }

コードをコピー
19.時間

このライブラリを使用すると、さまざまな形式でグラフィック ファイルを処理および表示できます。また、このライブラリのもう 1 つの一般的な用途は、グラフィック ファイルを作成することです。 gd 以外のもう 1 つのオプションは imagemagick ですが、この関数ライブラリは PHP に組み込まれていないため、システム管理者がサーバーにインストールする必要があります。 回答: 実際、session にはセッションの有効期間を設定する関数 session_set_cookie_params() も用意されています。この関数は、 session_start() 関数が呼び出される前に呼び出される必要があります。

<?php
    //1日保存
  1. $lifetime = 24 * 3600;
  2. session_start();
  3. $_session["admin"] = true;
  4. コードをコピーします
20. 次の機能を実現する関数を作成してください: 文字列「open_door」は「opendoor」に変換され、「make_by_id」は「makebyid」に変換されます。 30. 開発プロセス中にページの読み込みを高速化するためにどのような方法を使用しているかの例を教えてください。 a.静的HTMLを生成する b. XMLの生成 c.データベースを使用しない場合は、変数パラメータをテキストに保存するためにデータベースを使用しないようにしてください。 d.ゼンドで加速する 答え:

function test($str){

    $arr1=explode('_',$str);
  1. //$arr2=array_walk($arr1,ucwords( ) );

  2. $str = implode(' ',$arr1);

  3. return ucwords($str);
  4. }
  5. $aa='open_door';
  6. echo test($aa);
  7. ?>

  8. コードをコピー
  9. 21. PHP 環境変数を使用して Web ページのアドレスのコンテンツを取得するにはどうすればよいですか? IPアドレスを取得するにはどうすればよいですか?

    答え: $_servsr[‘request_uri’]

    $_server[‘remote_addr’]

    22. 2007-2-5 ~ 2007-3-6 の日付の違いなど、2 つの日付の違いを見つけます

    答え: (strtotime('2007-3-6')-strtotime('2007-2-5'))/3600*24

    23. テーブルには 3 つの列 a、b、c があり、SQL ステートメントを使用して実装できます。列 a が列 b より大きい場合は列 a を選択し、それ以外の場合は列 b が列より大きい場合に列 b を選択します。 c の場合は列 b を選択し、それ以外の場合は列 c を選択します。

    答え: a>b の場合を選択し、次に a else b を終了します。 case when b>c then b else c end テストから

    24. プロジェクト内の SQL ステートメントの実行効率を最適化する方法を簡単に説明してください。どのような観点から SQL ステートメントのパフォーマンスを分析するのですか?

    答え: (1) 最も効率的なテーブル名の順序を選択してください

    (2) where句の接続順序

    (3) select句では「*」の使用を避ける

    (4)having句をwhere句に置き換えます

    (5) 内部関数によるSQL効率の向上

    (6) インデックス付き列での計算の使用は避けてください。

    (7) group by の前に不要なレコードを除外することで、group by ステートメントの効率を向上させます。

    25.mysql_fetch_row() と mysql_fetch_array() の違いは何ですか?

    mysql_fetch_row() はデータベース列を 0 から始まる配列に格納します。最初の列は配列のインデックス 0、2 番目の列はインデックス 1 などになります。 mysql_fetch_assoc() は、データベースの列を連想配列に格納します。たとえば、データベース クエリは、「first_name」、「last_name」、および「email」の 3 つのフィールドを返します。配列は「first_name」、「last_name」、「email」です。 mysql_fetch_array() は、mysql_fetch_row() と mysql_fetch_assoc() の両方の値を返すことができます。

    26.次のコードは何に使用されますか?説明してください。 $date='08/26/2003';print ereg_replace("([0-9]+)/([0-9]+)/([0-9]+)","\2/\1/ \3",$date);

    これは、日付を mm/dd/yyyy 形式から dd/mm/yyyy 形式に変換します。私の友人は、この正規表現は次のステートメントに分解できると教えてくれました。このような単純な式については、単に説明の便宜上、分解する必要はありません。

    // 1 つ以上の 0 ~ 9 の後にスラッシュが続く $regexpression = "([0-9]+)/";// 1 つ以上の 0 ~ 9 の後に別のスラッシュが続く $regexpression .= "([0-9]+)/";// も、\2/\1/ \3 と同様に 1 つ以上の 0-9$regexpression に対応します。は括弧に対応するために使用されます。最初の括弧は月に対応します。

    27.gd ライブラリは何に使用されますか?

    回答: この関数ライブラリを使用すると、さまざまな形式でグラフィック ファイルを処理および表示できます。また、グラフィック ファイルを作成することもよくあります。 gd 以外のもう 1 つのオプションは imagemagick ですが、このライブラリは php に組み込まれていないため、システム管理者がサーバーにインストールする必要があります

    28. 開発プロセス中にページの読み込みを高速化するために使用する方法の例を教えてください。 回答: 必要なときにのみサーバー リソースを開き、適切なタイミングでサーバー リソースを閉じ、データベースにインデックスを追加すると、ページは静的ファイル、画像、その他の大きなファイルを別のサーバーに生成できます。コード最適化ツールを使用する

    29. SQL インジェクションの脆弱性を防ぐには、__addslashes___ 関数が一般的に使用されます。

    30.phpで値を渡す、参照を渡す、アドレスを渡すの違いは何ですか? 回答: 値による受け渡しは、実際のパラメーターの値を行パラメーターに割り当てることです。そのため、行パラメーターの変更は実際のパラメーターの値には影響しません

    アドレスの受け渡しは値を渡す特別な方法ですが、渡されるのは通常の int ではなくアドレスであり、アドレスを渡した後、実際のパラメーターと行パラメーターは同じオブジェクトを指します

    31. JavaScript を通じてウィンドウがブロックされているかどうかを確認する方法 回答: open() の戻り値を取得し、null の場合はブロックされます

    33. トラフィックが多い Web サイトの場合、トラフィックの問題を解決するためにどのような方法を使用しますか?

    回答: まず、サーバー ハードウェアが現在のトラフィックをサポートするのに十分であるかどうかを確認します

    2 番目に、データベース アクセスを最適化します。

    第三に、外部ホットリンクは禁止されています。

    4 番目に、大きなファイルのダウンロードを制御します。

    5 番目に、別のホストを使用してメイントラフィックを迂回します

    6、トラフィック分析および統計ソフトウェアを使用する

    上記では、PHP 面接の質問と関連する回答をいくつか紹介しています。皆さんのお役に立てれば幸いです。

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