PHP面接質問セット、PHPテスト質問
はん~~インターネットでPHPの質問をいくつかしたのですが、いつの間にかここまでたどり着きました…答えを投稿してください
ご質問がございましたら、お気軽にお問い合わせください追加して修正してください
1. PHP を使用して、前日の時刻を 2006-5-10 22:21:21 の形式で出力します (2 点) $a = date("Y-m-d H:i:s", strtotime("-1 日")); print_r($a);
2. echo()、print()、print_r()の違い(3点) echo と print は関数ではなく言語構造です int print(string $arg)、パラメータは 1 つだけ echo arg1,arg2; は複数のパラメータを出力して void を返すことができます。 echo と print は文字列のみを出力でき、構造体は出力できません。 print_r は構造体を出力できます 例えば $arr = array("キー"=>"値"); print_r($arr);
3. HTMLとPHPを使い分けできるテンプレート(1点) スマート、phplib
4. バージョン管理にはどのようなツールが使用されていますか? (1 点) SVN、GIT、CVS
5. 文字列反転を実装する方法 (3 つのポイント) 英語: strrev($a) 中国語またはその他のテキスト: 中国語: GB2312、コードは GB2312 を使用してエンコードされます len=mbstrwidth( str,"GB2312"); for(i=0;ilen; i++) { arr[]=mbsubstr( str, $i, 1, "GB2312"); } return implode("", array_reverse($arr)); } print_r(reverse("こんにちは"));
-------------------------------------------------- ------------- 6. MYSQL データベースを最適化する方法。 (4 ポイント、もっと書いてさらに獲得) 文章に関して言えば、 1 インデックスを使用してクエリ効率を向上させる 2 クエリ文を最適化し、インデックスのヒット率を向上させる 関係するデータベースの側面: 1 サブデータベースとテーブルを構築して、データベースのストレージ機能と拡張機能を向上させます。 2 必要に応じて別のストレージ エンジンを使用する
7. PHPの意味(1ポイントを送る) ハイパーテキスト前処理言語 ハイパーテキストプリプロセッサ
8. MYSQL が現在時刻を取得するために使用する関数は何ですか?、日付をフォーマットする関数は次のとおりです (2 点) CURRENT_TIMESTAMP() DATE_FORMAT() select DATE_FORMAT("2011-11-21 10:10:10", "%Y-%m-%d");
9. 中国語の文字列を文字化けせずにインターセプトする方法。 (3点) mb_substr($str, 1, 1, "GB2312");
-------------------------------------------------- ------------- 10. バージョン管理ソフトウェアを使用したことがありますか? (1 点) SVN ギット
11. テンプレート エンジンを使用したことがありますか? (1 点) 賢い
12. 最も誇りに思う開発作業を簡単に説明してください (4 点) XXX
13. トラフィックが多い Web サイトの場合、トラフィックの問題を解決するためにどのような方法を使用しますか? (4 点) 1 キャッシュを有効活用してキャッシュヒット率を高める 2 負荷分散を使用する 3 CDN を使用して静的ファイルを保存および高速化する データベースの使用量を削減するための 4 つのアイデア 5 統計上のボトルネックがどこにあるのかを確認する
-------------------------------------------------- --------------- 14. PHP を使用して、クライアント IP とサーバー IP を表示するコードを記述します (1 点) $_SERVER["REMOTE_ADDR"] $_SERVER["SERVER_ADDR"]
15. include ステートメントと require ステートメントの違いは何ですか? 同じファイルを複数回インクルードすることを避けるために、これらを (?) ステートメントに置き換えることができますか? (2 点) 失敗時: include は警告を生成しますが、require はエラー割り込みを直接生成します。 require は実行前にロードされます インクルードは実行時にロードされます 一回だけ必要 include_once
16. SESSION の生存時間を変更する方法 (1 点)。 session_set_cookie_params
17. PHP 研究所のホームページ http://www.phpv.net/index.html のような Web ページのアドレスがありますが、そのコンテンツ (1 ドルのポイント) を入手するにはどうすればよいですか? file_get_contents カール
18. HTTP 1.0 では、ステータス コード 401 の意味は (?)、プロンプト「ファイルが見つかりません」が返された場合、ヘッダー関数を使用できます。そのステートメントは (?) です。 無許可の header("HTTP/1.0 404 が見つかりません"); 高速 CGI の場合: header("ステータス: 404 見つかりません");
19. PHP では、ヒアドキュメントは特殊な文字列であり、その終了マークは (1 ポイント) でなければなりません。 ペアで登場する $a = 20. asp、php、jsp の長所と短所について話す (1 点) ASP は IIS に依存する必要があり、Microsoft によって開発された言語です。 php と jsp は、Apache や nginx などの他のサーバーに依存できます。
21. mvc についての理解を語る (1 ポイント) モデル: データ構造層 ビュー: 表示 制御: 処理入力を受信および判断します
-------------------------------------------------- ------------------ 22. 次の表を使用して、投稿数の多い 10 人の名前の SQL を記述します: メンバー (ID、ユーザー名、投稿、パス、電子メール) (2 点) メンバーからトップ 10 の ID、ユーザー名を選択 投稿順に並べ替えます desc
23. PHP における値渡しと参照渡しの違いを説明してください。いつ値で渡すのか、いつ参照で渡すのか (2 点) & は参照渡しを意味します 関数内でパラメータを参照渡しするとパラメータが変更されます 一般に、複数の出力パラメーターがある場合は、参照の使用を検討できます。
24. PHP の error_reporting の機能は何ですか? (1 点) エラーの表示レベルを設定します
25. メールの形式が正しいかどうかを検証する関数を書いてください(2点) $str = "jianfeng@126.com"; regex="([a−z0−9.−]+ )@ ([da−z.−]+).([a−z.]2,6) 」 ; / /定期 return preg_match(regex,str)
26. 取得したパラメータを含む、現在の実行スクリプトのパスを取得する方法を簡単に説明します。 (2分) $argc -- パラメータの数を取得します。 $argv -- パラメータリストを取得します。
27. SESSIONの生存時間を変更する方法(1点) session_set_cookie_params
-------------------------------------------------- ------------------ 28. JSフォームでダイアログボックスをポップアップする関数とは何ですか? (2点) アラート() 確認する() プロンプト() 集中()
29. JSのリダイレクト機能とは 外部JSファイルの導入方法(2点) window.location.href="#" スクリプト>
30. foo() と @foo() の違いは何ですか? (1 点) @ は無視されるすべての警告を表します
31. メソッドと属性なしで「myclass」という名前のクラスを宣言するにはどうすればよいですか? (1 ポイント) クラスマイクラス { }
32.「myclass」という名前のオブジェクトをインスタンス化する方法 (1 ポイント) $myclass = 新しい myclass();
33. クラスのプロパティにアクセスして設定するにはどうすればよいですか? (2 点) n=a->名前; print_r($n);
34. mysql_fetch_row() と mysql_fetch_array の違いは何ですか? (1 点) mysql_fetch_array() は mysql_fetch_row() の拡張バージョンです。データを数値インデックスとして配列に保存するだけでなく、フィールド名をキーとして使用して、データを連想インデックスとして保存することもできます。 row=mysqlfetcharray ( 結果、MYSQL_ASSOC)) { printf ("ID: %s 名前: %s", row["id"], 行["名前"]); } Mysql_free_result($result);
-------------------------------------------------- ------------------ 35. GD ライブラリは何に使用されますか? (1 点) ダイナミックでオープンな画像処理ライブラリ
36. PHP に HTML コードを入力するいくつかの方法を指摘します。 (1点) エコー「{html}」 エコー 37. 次の関数のうち、ファイルを開いて読み書きできるものはどれですか? (1 点) c (a) fget() (b) file_open() (c) fopen() (d) open_file()
38. 次のオプションのうち、ユーザー配列に john が追加されないものはどれですか? (1 点) b (a) $users[] = 'ジョン'; (b) array_add($users,'john'); (c) array_push($users,‘john’); (d) $users ||= ‘ジョン’;
39. 次のプログラムが入力されますか? (1 点) 10 $num = 10; 関数乗算(){ num=num * 10; } 乗算(); $num をエコーします。 ?>
40. PHP を使用して、「Zhang San」という名前のすべてのコンテンツを検索し、出力する簡単なクエリを作成します (2 ポイント) テーブル名 ユーザー名 電話番号 内容 日付 張三 13333663366 大学卒業 2006-10-11 張三 13612312331 学士 2006-10-15 Zhang Si 021-55665566 工業高校卒業 2006-10-15 上記の質問に従ってコードを完成させてください。 $mysql_db=mysql_connect("ローカル","ルート","パス"); @mysql_select_db("DB",$mysql_db); $sql = sprintf("select * from %s where UserName = '%s'", "テーブル名", 「張三」); values=mysqlquery( sql); while(item=mysqlfetchquer y array( 値)) { echo sprintf("ユーザー名: %s、電話番号 %s、学歴: %s、卒業日: %s", item[′UserName′], item['Tel']、item[′Content′], item['日付'] ); }
41. 次のクラスの使い方とその意味を説明しますか? (3) クラステスト{ 関数 Get_test($num){ num=md5(md5( num)."En"); $num を返します; } } $test = 新しいテスト(); ret=test->Get_test(11); print_r($ret);終了; numをMD5エンコードして生成された32ビット文字列a1を「En」で繋ぎ、再度MD5エンコードを行います。
-------------------------------------------------- ------------------------ 42. SQL ステートメントの形式を記述します: 挿入、更新、削除 (4 点) テーブル名 ユーザー名 電話番号 内容 日付 張三 13333663366 大学卒業 2006-10-11 張三 13612312331 学士 2006-10-15 Zhang Si 021-55665566 工業高校卒業 2006-10-15 (a) 新しいレコードがあります (Xiao Wang 13254748547 高校卒業 2007-05-06) SQL ステートメントを使用してテーブルに追加してください。 テーブル名の値に挿入します('Xiao Wang', '13254748547', '高校卒業', '2007-05-06') (b) SQL ステートメントを使用して、Zhang San の時刻を現在のシステム時刻に更新してください。 テーブル名を更新 set Date = GETDATE() where UserName = "Zhang San" (c) Zhang Si という名前のすべての記録を削除するよう書き込んでください。 削除元は、UserName = "Zhang Si" の場所を示します
43. データ型の意味を書いてください (int char varchar datetime text) varchar と char の違いは何ですか (2 点) int整数型 固定長の文字ストレージ varchar ストレージの可変長 日時時間 テキストは可変長を格納します varchar は可変長です char(20) 固定長
44. MySQ 自動インクリメント タイプ (通常はテーブル ID フィールド) を (?) フィールド (1 ポイント) に設定する必要があります 自動増加 45. 以下のプログラムの出力を書いてください(1点) $b=201; $c=40; a=b>$c?4:5; $a をエコーします。 ?> 4
46. 変数が設定されているかどうかを検出する関数はありますか? (2 点) isset() 空の()
-------------------------------------------------- ------------------------ 47. クエリ結果セットの総数を取得する関数は何ですか? (1 点) mysql_num_rows()
48. $arr = array('james', 'tom', 'symfony'); 最初の要素の値 (1 ポイント) を出力してください。 print_r($arr[0]); リセット($arr); print_r(current($arr)); print_r(array_shift($arr));
49. 問題41の配列の値を「,」記号で区切って文字列出力にマージしてください(1点) 爆裂する
50. a='abcdef';お願い取り出してください 値を入力し、最初の文字(1ポイント)を出力します $a[0]; substr($a, 0, 1);
51. PHP は SQL Server/oracle などのデータベースに接続できますか? (1 点) できる 既製のライブラリがあります
52. PHP5のパーミッション制御修飾子を書いてください(3点) 公共 プライベート 保護された
53. php5のコンストラクタとデストラクタを書いてください(2点) パブリック関数 __construct() { } パブリック関数 __destruct() { }
プログラミングに関する質問 1. 標準 URL からファイル拡張子をできるだけ効率的に取得する関数を作成します。 例: http://www.sina.com.cn/abc/de/fg.php?id=1 は、php または .php を削除する必要があります。 arr=parseurl( url); pathArr=pathinfo( arr['path']); print_r($pathArr['拡張子']);
3. 2 つのファイルの相対パスを計算する関数を作成します。 たとえば、 $a = '/a/b/c/d/e.php'; $b = '/a/b/12/34/c.php';
bからへの相対パスがhttp://www.cnblogs.com/12/34/c.phpとなるように計算します path,conpath) { pathArr=explode("/" 、 パス); conpathArr=explode(") /」 、コンパス); $dismatchlen = 0; for(i=0;i ; i++) { if(conpathArr[ i] != pathArr[i]) { dismatchlen=count( pathArr) - $i; arrLeft=arrayslice( pathArr, $i); 壊す; } } ret=strrepeat("../ 「、」 dismatchlen).implode("/", $arrLeft); $ret を返します。 } print_r(sGetRelativePath(b,a)); 3. フォルダー内のすべてのファイルとサブフォルダーを走査できる関数を作成します。
handle=opendir( フォルダー); while((file=readdir( ハンドル) ) !== false) { //「はい」または「スキップ」の場合 if(file=="."|| ファイル == "。 .") { 続く; } if(is_file(folder."/". ファイル)) { aFileArr[]= ファイル; }else if(is_dir(folder."/". ファイル) ) { aFileArr[file] = aGetAllFile() fold er."/".file); } } 閉じられたir($ハンドル); } $aFileArr を返します。 } $path = "/home/test/sql"; print_r(aGetAllFile($path));
大企業からの 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 = 配列...残りのテキスト>>
仕事を探している友人は参考にしてみてもよいでしょうが、必ずしも役立つとは限りません。場合によっては職歴も非常に重要です。ただし、基本的な知識は依然として非常に重要です。高レベルのアルゴリズムの問題については、特に重要なタスクを実行していない限り、高レベルのフォト アルバム処理でこれらのアルゴリズムに遭遇することはありません。実際に処理できる場合は、実行できます。製品を販売することだけでは問題ありません。
1. 基本的な知識のポイント
HTTP プロトコルのいくつかのステータス コードの意味: 503 500 401 200 301 302
include require include_once require_once の違い
mysql4.0 などの PHP/Mysql のいくつかのバージョンの進化の歴史。 4.1 へのアップグレード、PHP 4.x から 5.1 への大幅な改良など。
HEREDOC の概要
いくつかの php マジック メソッドを作成します
php をコンパイルするときにいくつかのパラメーターを設定します
php にパラメーターを渡す 2 つの方法
(mysql) データ型の意味を書いてください (int char varchar datetime text); varchar と char の違いは何ですか?
Error_reporting などのデバッグ機能が使用されます
バージョン管理ソフトウェアを使用したことがありますか?使用するバージョン管理ソフトウェアは何ですか?
posix と Perl の標準正規表現の違いは何ですか?
セーフモードをオンにした後の制限は何ですか?
複数のプロセス/スレッドによるファイルの読み取りと書き込みの問題を解決するコードを作成します。同じ時間です。
ファイルをアップロードするコードを記述します。
Mysql ストレージ エンジン、myisam と innodb の違い。
2. Web アーキテクチャ、セキュリティ、プロジェクトの経験
xdebug、apc、eAccelerator、Xcache、Zend opt の使用経験を紹介します。
mod_rewrite を使用します。サーバー上に物理ファイル /archivers/567.html がない場合は、index.php?id=567 にリダイレクトします。まず mod_rewrite をオンにしてください。
MySQL データベースは公開システムのストレージとして使用されます。 1 日あたり 50,000 アイテムを超える増加分は、運用とメンテナンスに 3 年間かかると予想されます。これを最適化するにはどうすればよいですか?
並べ替えアルゴリズム (原理) を記述し、それを最適化する方法を説明します。
最も誇りに思っている開発作業について簡単に説明してください
トラフィックの多い Web サイトの場合、ページ訪問の統計の問題を解決するためにどのような方法を使用しますか?テンプレート エンジンを使用したことがありますか?使用している場合は、使用したテンプレート エンジンの名前を教えてください。
セッションの原理、大規模なWebサイトでのセッションの注意点を教えてください
PHPのパフォーマンスとMySQLデータベースのパフォーマンスをテストするためのツール、およびボトルネックを見つける方法について教えてください。
Web ページ内のすべてのリンクを報告します。
一般的な SSO (シングル サインオン) ソリューションの原則を紹介します (discuz のパスポートを統合する dedecms など)。
あなたが作成した PHP フレームワークの特徴、主にどのような問題を解決するか、他のフレームワークとの違い。
大規模なフォーラム/ニュース記事システム/SNS Web サイト間のパフォーマンスの最適化の違いは何ですか?
フォト アルバム アプリケーション: ブラウザーで同時に複数のファイルを選択してアップロードする必要があり、写真をトリミングする必要があります。圧縮されたパッケージはサーバー側で解凍されます。 1 つのファイルを最大 50M までアップロードできます。アップロードプロセス中に進行状況バーが表示されます。画像ごとに 4 つのサイズのサムネイルを生成できます。フラッシュ再生するにはビデオ ファイルを flv に変換する必要があります。対象となるさまざまなタイプのオープンソース ソフトウェアとその簡単な使用法について説明します。
猿のグループが円形に並び、1、2、...、n に従って番号が付けられます。次に、1 番目から数え始め、m 番目まで数え、円の外に追い出し、後ろから数え始め、m 番目まで数え、追い出します...このようにして最後まで続けます。猿は一匹だけ残っており、その猿は王様と呼ばれています。このプロセスをシミュレートするには、m、n を入力し、最後の王の番号を出力するプログラミングが必要です。プログラムを使用してこのプロセスをシミュレートします。
3. unix/linux の基本的な使い方
Linux で現在のシステム負荷情報を確認するいくつかの方法。
vim の基本的なショートカット キー。
Ssh のセキュリティ強化方法のパスワード モードと RSA キー モードの設定。
rpm/apt&...本文の残り>>

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

PHPでは、クローンキーワードを使用してオブジェクトのコピーを作成し、\ _ \ _クローンマジックメソッドを使用してクローン動作をカスタマイズします。 1.クローンキーワードを使用して浅いコピーを作成し、オブジェクトのプロパティをクローン化しますが、オブジェクトのプロパティはクローニングしません。 2。\ _ \ _クローン法は、浅いコピーの問題を避けるために、ネストされたオブジェクトを深くコピーできます。 3.クローニングにおける円形の参照とパフォーマンスの問題を避けるために注意し、クローニング操作を最適化して効率を向上させます。

PHPはWeb開発およびコンテンツ管理システムに適しており、Pythonはデータサイエンス、機械学習、自動化スクリプトに適しています。 1.PHPは、高速でスケーラブルなWebサイトとアプリケーションの構築においてうまく機能し、WordPressなどのCMSで一般的に使用されます。 2。Pythonは、NumpyやTensorflowなどの豊富なライブラリを使用して、データサイエンスと機械学習の分野で驚くほどパフォーマンスを発揮しています。

HTTPキャッシュヘッダーの主要なプレーヤーには、キャッシュコントロール、ETAG、およびラスト修飾が含まれます。 1.Cache-Controlは、キャッシュポリシーを制御するために使用されます。例:キャッシュコントロール:Max-Age = 3600、public。 2。ETAGは、一意の識別子を介してリソースの変更を検証します。例:ETAG: "686897696A7C876B7E"。 3. Last-Modifiedは、リソースの最後の変更時間を示しています。

PHPでは、Password_hashとpassword_verify関数を使用して安全なパスワードハッシュを実装する必要があり、MD5またはSHA1を使用しないでください。 1)password_hashセキュリティを強化するために、塩値を含むハッシュを生成します。 2)password_verifyハッシュ値を比較して、パスワードを確認し、セキュリティを確保します。 3)MD5とSHA1は脆弱であり、塩の値が不足しており、最新のパスワードセキュリティには適していません。

PHPは、動的なWeb開発およびサーバー側のアプリケーションに使用されるサーバー側のスクリプト言語です。 1.PHPは、編集を必要とせず、迅速な発展に適した解釈言語です。 2。PHPコードはHTMLに組み込まれているため、Webページの開発が簡単になりました。 3。PHPプロセスサーバー側のロジック、HTML出力を生成し、ユーザーの相互作用とデータ処理をサポートします。 4。PHPは、データベースと対話し、プロセスフォームの送信、サーバー側のタスクを実行できます。

PHPは過去数十年にわたってネットワークを形成しており、Web開発において重要な役割を果たし続けます。 1)PHPは1994年に発信され、MySQLとのシームレスな統合により、開発者にとって最初の選択肢となっています。 2)コア関数には、動的なコンテンツの生成とデータベースとの統合が含まれ、ウェブサイトをリアルタイムで更新し、パーソナライズされた方法で表示できるようにします。 3)PHPの幅広いアプリケーションとエコシステムは、長期的な影響を促進していますが、バージョンの更新とセキュリティの課題にも直面しています。 4)PHP7のリリースなど、近年のパフォーマンスの改善により、現代の言語と競合できるようになりました。 5)将来的には、PHPはコンテナ化やマイクロサービスなどの新しい課題に対処する必要がありますが、その柔軟性とアクティブなコミュニティにより適応性があります。

PHPの中心的な利点には、学習の容易さ、強力なWeb開発サポート、豊富なライブラリとフレームワーク、高性能とスケーラビリティ、クロスプラットフォームの互換性、費用対効果が含まれます。 1)初心者に適した学習と使用が簡単。 2)Webサーバーとの適切な統合および複数のデータベースをサポートします。 3)Laravelなどの強力なフレームワークを持っています。 4)最適化を通じて高性能を達成できます。 5)複数のオペレーティングシステムをサポートします。 6)開発コストを削減するためのオープンソース。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

WebStorm Mac版
便利なJavaScript開発ツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境
