PHPの面接の質問

Jun 23, 2016 pm 02:34 PM

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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

セッションのハイジャックはどのように機能し、どのようにPHPでそれを軽減できますか? セッションのハイジャックはどのように機能し、どのようにPHPでそれを軽減できますか? Apr 06, 2025 am 12:02 AM

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。

確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 Apr 03, 2025 am 12:04 AM

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

phpstormでCLIモードをデバッグする方法は? phpstormでCLIモードをデバッグする方法は? Apr 01, 2025 pm 02:57 PM

phpstormでCLIモードをデバッグする方法は? PHPStormで開発するときは、PHPをコマンドラインインターフェイス(CLI)モードでデバッグする必要がある場合があります。

システムの再起動後にUnixSocketの権限を自動的に設定する方法は? システムの再起動後にUnixSocketの権限を自動的に設定する方法は? Mar 31, 2025 pm 11:54 PM

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

フレームワークセキュリティ機能:脆弱性から保護します。 フレームワークセキュリティ機能:脆弱性から保護します。 Mar 28, 2025 pm 05:11 PM

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

See all articles