PHPの面接の質問

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-23 14:34:42
オリジナル
1056 人が閲覧しました

1. PHP を使用して、前日の時刻を 2006-5-10 22:21:21 の形式で出力します。
解決策: echo date('Y-n-d H:i:s', strtotime('-1 day) '));
理由:

書式文字の説明 戻り値の例 、12時間制、フロントガイドゼロありhM があります。 s 秒、先行ゼロ付き 00〜59>S 月の日の後の英語の接尾辞、2 文字 st、nd、rd、または th。 jと合わせて使えます。 t特定の月の日数28から31Tこのマシンが位置するタイムゾーン例: EST、MDT ([翻訳者注] 以下で完了) Windows のテキスト形式(「東部標準時」など)、中国語版では「中国標準時」が表示されます。 w 曜日、数字は 0 (日曜日) から 6 (土曜日) を表します W ISO-8601 形式 年間の週、開始日からの各週月曜日 (PHP 4.1.0 の新機能) 例: 42 (年の第 42 週)Y 4 桁の数字で表される年例: 1999 または 2003
a 小文字の AM 値と PM 値 am または pm
A 大文字の AM 値と PM 値 AM または PM
d 日付、先行ゼロ付き 2 桁 01 〜 31
D 曜日、テキスト表現、3 文字 Mon to Sun
F 月、1 月や 3 月などの完全なテキスト形式 1 月から 12 月
g 時、12 時間形式、先行ゼロなし 1 から 12
G 時制、24時間制、フロントガイドゼロあり
H
小 小 小00〜23
i 先行ゼロ付きの分 00〜59>
I 夏時間かどうか 1の場合夏時間、それ以外の場合0
j 日付、先行ゼロなし 1〜31
l (「L」の小文字) 曜日、フルテキスト形式 日曜日〜土曜日
L が閏年の月かどうか、それ以外の場合は 0
で表される月であり、月次微分ゼロ
1 月から 12 月
n 先行ゼロのない数値の月 1グリニッジ標準時から 12
O 時間 例: +0200
r RFC 822 形式の日付 例: Thu, 21 Dec 2000 16:01:07 +0200
y 🎜 🎜2 桁で表される年🎜 🎜例: 99 または 03🎜 🎜 🎜 🎜z🎜 🎜 その年の日🎜 🎜 0 ~ 366🎜 🎜 🎜
2. HTML と PHP を分離できるテンプレート
説明: 実際、私が使用したテンプレート エンジンには、PHPLib、FastTemplate、および Savant があります。 ://www.sitepoint.com/forums/showthread.php?t=123769

3. バージョン管理にはどのようなツールが使用されますか?
説明: CVS と SVN SVN は次世代の CVS として知られており、強力な機能を備えていますが、私は常に SVN を使用していました。これには次のように答える必要があるかもしれません: Apache 上の CVS サーバーがサーバーとして使用され、WinCVS がクライアントとして使用されます。Apache/DAV 上の Subversion がサーバーとして使用され、TortoiseSVN がクライアントとして使用され、または Subclipse が使用されます。

4. 文字列反転を実装するには?
解決策: strrev 関数を使用します。PHP の組み込み関数は使用せず、自分で記述します。
strrev($str)
{
$len=strlen($str);
$newstr = ''''; for($i= $len;$i>=0;$i--)
{
$newstr .= $str{$i};
}
return $newstr;

5. MYSQL を最適化する方法データベース?
私の答え:
(1)。データベースの設計に関しては、これは DBA とアーキテクトの責任です。必要に応じて、非正規化します (英語では denormalize です)。中国語の翻訳)、ある程度のデータの冗長性により JOIN 操作が回避され、クエリ効率が向上します
(2)。システム アーキテクチャ設計の観点から、テーブル ハッシュは、大量のデータを複数の異なるテーブルにハッシュするために使用されます。高速テーブルと低速テーブルは最新のデータのみを保持します。 、遅いテーブル テーブルは履歴アーカイブです。クラスター、マスターサーバー読み取りおよび書き込み、スレーブサーバー読み取り専用、または N サーバー、各マシンは相互のマスターです (3) と (2) を超えます。インデックスが少ないかどうかを確認してください
(4)。生成される完全結合などの非効率な SQL ステートメントがないかどうかを確認します。デカルト積、多数の Group By と order by、制限なしなど。必要に応じて、データベース ロジックを DBMS 側のストアド プロシージャにカプセル化し、クエリ結果をキャッシュし、各 SQL ステートメントを説明します
(5)。結果が必要であり、クエリ 特定の記事のコメント数、select count(*) ... where Article_id = ? など、必要なデータのみがデータベースから取得されます。 where Article_id = ? の後に msql_num_rows を送信します。ユーザーがタイトルのみを変更した場合は、set title = ? を設定しないでください。大きなテキスト)
(6). たとえば、InnoDB はデッドロックを削減できます

6. トランザクション処理について話します。プログラミング言語には、Hello World を可能にする例があります。このデータベースの教科書には、例として、これに答えてください。しかし、MySQL を使用する企業は、実装に MySQL を使用することはほとんどありません。さらに、Oracle は InnoDB を買収しました。

7. apache+mysql+php で最大負荷を達成します。 解決策:

8. 文字化けせずに中国語のテキスト文字列をインターセプトする方法。
解決策: mb_substr()

9. echo()、print()、print_r() の違い
解決策: echo は戻り値のない言語構造であり、print 関数は基本的に echo と同じです。 print は戻り値を持つ関数であり、配列オブジェクト

10 を出力するために使用されます。PHP では、現在のスクリプトの名前 (パスとクエリ文字列を除く) が事前定義された変数に記録されます。現在のページにリンクされている URL は、事前定義された変数 what に記録されます。
解決策: echo $_SERVER['PHP_SELF']; echo $_SERVER["HTTP_REFERER"];
11. 実行プログラムセグメントが出力されます。 ?
解決策: 0
12. HTTP 1.0 では、「ファイルが見つかりません」というプロンプトが返された場合、ヘッダー関数を使用できますが、そのステートメントは何ですか?
解決策: Unauthorized header("HTTP/1.0 404 Not Found");
13. 配列関数 arsort の関数は、ステートメント error_reporting(2047) の関数です。 (すべてのエラーと警告)。
14. PEAR () のデータベース接続文字列の形式は何ですか?
15. Web ページ上のすべての JS/VBS スクリプトをフィルタリングする (つまり、script タグとそのコンテンツを削除する) 正規表現を記述します: ( /].*?>.*?< ;/script>/si )
16. PHP を Apache モジュールとしてインストールするには、http.conf ファイルで、まずステートメント (1) を使用して PHP モジュールを動的にロードし、次にステートメント (2) を使用して Apache にphp ファイルの拡張子はすべて PHP スクリプトとして処理されます。
解決策: (1) LoadModule php5_module "D:/xampp/apache/bin/php5apache2.dll" (2) AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php .php5 .php4 .php3 .phtml
17. include ステートメントと require ステートメントは両方とも、現在のファイルに別のファイルをインクルードできます。これらの違いは何ですか? 同じファイルを複数回インクルードすることを避けるために、ステートメント () を使用してそれらを置き換えることができます。
説明: 例外が発生すると、include は警告を生成し、require は致命的なエラーを生成します (13) require_once()/include_once()
18. クラスの属性をシリアル化してセッションに保存できるため、クラス全体が後で復元できます。これを使用する必要があります。関数は (serialize() /unserialize() ) です。
19. php.ini で (allow_call_time_pass_reference) が on に設定されていない限り、関数のパラメーターは変数への参照にすることはできません。 .
20. SQL における LEFT JOIN の意味は (自然な左外部結合) です。
tbl_user が生徒の名前 (名前) と生徒番号 (ID) を記録する場合、
tbl_score は生徒の生徒番号 (ID) とテストの得点 (スコア) を記録します (一部の生徒は試験後に退学になり、その記録はありません)。試験科目 (subject)、
各学生の名前と、対応する各科目の合計スコアを出力したい場合は、SQL ステートメントを使用できます: select name, count(score) as sum_score from tbl_user left join tbl_score on tbl_user .ID=tbl_score. tbl_user.ID による ID グループ
21. PHP では、ヒアドキュメントは特殊な文字列であり、その終了マークは次のようにする必要があります (終了識別子が配置されている行には「;」以外の文字を含めることはできません)。
22. フォルダー内のすべてのファイルとサブフォルダーを走査できる関数を作成します。
解決策: /**
* ディレクトリを走査し、結果を配列に保存します。 php4以降をサポートします。 php5 以降では、scandir() 関数を使用して while ループを置き換えることができます。
* @param string $dir
* @return array
*/
function my_scandir($dir)
{
$files = array();
if ( $handle = opendir($dir) ) {
while ( ($file = readdir( $handle)) !== false ) {
if ( $file != ".." && $file != "." ) {
if ( is_dir($dir . "/" . $file) ) {
ファイル[$ file] = rec_scandir ($ dir. "/". $ file); else {
$ files [] = $ file
}}
$ files を返します。
23. フォーラムでの無限分類の実装原理を簡単に説明します。
24. Web ページを開いたときに全画面ウィンドウが表示されるようにデザインします。ウィンドウ内にテキスト ボックスとボタンが表示されます。ユーザーがテキスト ボックスに情報を入力してボタンをクリックすると、入力した情報がメイン Web ページに表示されている間、ウィンドウを閉じることができます。

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート