面接の質問を通じて PHP の穴埋め問題を学習する

WBOY
リリース: 2016-06-13 12:02:49
オリジナル
1736 人が閲覧しました

面接の質問を通じて PHP の穴埋め問題を学びましょう

? 🎜>変数の判定 存在する関数: isset

は、変数が

null の関数:is_null は決定します変数が空かどうか 関数

:

を破棄する関数

変数:

unset

2

, $a =array(1,2);unset($a[0]);print_r($a);echo count($a);出力結果:

答え: array(1=> 2)?1

3

$str = '2012/12/21'; echoreg_replace("([0-9] )/([0-9] )/([0-9] )" ,"\ 1/\2/\3",$str);

出力結果を記述してください

:

' 2012/12/21'4

, $a = "aaa"; $b ="bbb";$c = "$a$b"; $c = $a.$b;①と②ではどちらが実行が早いでしょうか? 答え: ②

5

.」でリンクされた文字列を出力する場合、「.'リンクはより効率的ですか? 答え: '

' の代わりに'.」の方が効率的です。

6関数 strpos のプロトタイプint strpos(string haystack,stringneedle [,int offset])

は、haystack needle を検索し、見つかった場合は haystack

needle を返します> オフセット、それ以外の場合は false が返されます。質問: falseを返す strpos0 を返すのはどうすればよいですか?

答え: 判断には絶対的な平等を使用します。 == は 2 つのデータ型が同じかどうかを判断しませんが、 === は、2 つの値が等しいだけでなく、データ型も同じであることを要求します。

7知っていることを列挙してくださいphpテンプレート オブジェクト

答え: smarty 、一般的なものには、PHPLib、FastTemplate、Savant

8 スクリプト内に pHp を記述して実行してください SHELL少なくとも 2 つのコマンド メソッドを記述する必要があります。

答え: ①string?exec(stringcommand[,array output[,int return_var]])出力の最後の行を返し、オプションのパラメータ を渡すこともできます。 outputexec で各行を出力します。指定されたコマンドの終わり。

??文字列?システム(String command[,int return_var]) は、呼び出し元にコマンド出力を直接返します。

??void ?passthru(String command[,int returan_var])バイナリ出力を呼び出し元に返します。

??string ?shell_exec ( string $cmd ) 文字列を shell コマンドとして実行し、すべての出力を返します。

??resource ?popen ( string $command , string $mode ) を開くfork で指定されたコマンド コマンド の実行によって生成されたプロセスを指すパイプ。

9 と記入してください pHp 変数のシリアル化および逆シリアル化関数、および 1 のアプリケーション例を示します

答え: serialize()/unserialize().

10 WWWapplypHpのキャプチャ方法プログラム内のページキャッシュの出力は?

答え: ob_start() ;オープンキャッシュ ロードされたコンテンツをキャッシュ領域にロードします。
ob_get_contents();
キャッシュの内容を取得, 従来の使用法 $str=ob_get_contents();

Ob_clean ( );バッファの内容のみをクリアします。
ob_end_clean();
バッファー内のキャッシュされたコンテンツをクリアします、出力バッファーを閉じます。

ob_start() 関数が表示された後、すべての出力コンテンツはキャッシュされ、それが表示されるまで出力されません。 ob_end_clean() 関数が表示されます。 ob_end_clean()出力コンテンツは今後キャッシュされなくなりますそして前回のキャッシュ内容のクリア。したがって、キャッシュされたばかりのコンテンツを使用するには、ob_end_clean()

を使用する必要があります。 > 関数が表示されます。 ob_get_contents() 関数はキャッシュされたコンテンツを取得します。

ob_clean() および ob_end_clean()違いは何ですか?

ob_clean バッファの内容をクリアするだけです .ob_end_cleanob_clean より多くのことを行います。バッファを閉じるだけです.

ob_flush(); バッファを更新し、バッファの内容を出力します;

ob_get_length(); バッファ内のキャッシュされたコンテンツの長さを返します。

ob_get_clean(); 現在のバッファの内容を取得し、出力バッファを削除します。

11コードの最初の部分を実行します。結果は何個になると思いますか?

??????$a = 配列(1,2);

?????? $b = 配列(3,4);

??????? var_dump($a $b);

の 2 番目の部分を実行します。もう一度コードを書いてみましたが、結果はどうなりましたか?

??????$a = 配列(1,2);

?????? $b = 配列('2'=>3,'3'=>4);

????????? >

答え: 最初のコードの結果は array([0]=>1,[1]=> ;2); です。

??????2 番目のコードの結果は array([0]=>1,[1]=>2,[2]=>3,[3]=>4);

??????これは、php配列加算の処理は $a $b の場合、 の場合$b配列には $a が含まれています。配列を作成し、$b の異なる配列項目を $a 配列を返し、この配列 .??? ??????

増加しているから減少するのではないかと思われるかもしれませんが、減少はいいえ、文法チェックを通過できません 12

echo 3|4; してください出力:

答え: 7

13, エコーカウント('12asssss');

答え: 1

14 PHP を使用して、前日の時刻を 2006-5-10 22:21:21

答え: echo date('Y-n-d H:i:s', strtotime('-1 day' ));

15ツールとはバージョン管理に使用されます ?

Answer:cvs,svn,vss;

16、文字列反転を実現する方法?

答え: stringstrrev( string<em><span style="font -size: 12pt;"> <span style="font-family: Consolas;">$string</span></span></em><em><span style="font-size: 12pt;"><span style="font-family: Consolas;">$string</span></span></em> )---php組み込みの文字列反転関数。

関数 str_strrev($str)

{

??? $len=strlen($str) );

??? $newstr = "";

???($i=$) len;$i>=0;--$i)??? {

???? $newstr .= $str[$i];

??? }

???

return $newstr;}

17MYSQL現在時刻を取得する関数は ?、日付をフォーマットする関数は

です 答え: ① curtime()/current_time()—現在時刻を返します

?????? curdate()/current_date()—現在の日付を返します

??? ?? ??? now()—関数が実行された時刻と日付を返します

?????????sysdate()—現在のリアルタイム時間を返します。

uninx_timestamp()—現在の日時の unix タイムスタンプを返します。

Date_format(date,format)—日付をフォーマットする関数

18PHP を使用して表示クライアントを作成しますIP およびサーバーIPコード?

答え: 関数 get_client_ip(){

? ?? if(getenv('HTTP_CLIENT_IP')){

?????? >'HTTP_CLIENT_IP');

??? }

elseif(getenv('HTTP_X_FORWARDED_FOR')) {

?????? $client_ip = getenv(

'HTTP_X_FORWARDED_FOR');

??? }

elseif( getenv('REMOTE_ADDR')) {

?????? $client_ip = getenv(

'REMOTE_ADDR');

? ?? }

else {

?????? $client_ip = $_SERVER[

'REMOTE_ADDR'];

??? }

???

return $client_ip;

}

1. REMOTE_ADDR:現在のページを閲覧しているユーザーのコンピュータの ipアドレス
2.HTTP_X_FORWARDED_FOR: 現在のページの閲覧 ページのユーザー コンピュータのゲートウェイ
3.HTTP_CLIENT_IP:クライアントの ip

PHP は、 $_SERVER["REMOTE_ADDR"] を使用して、クライアントの IP アドレス。ただし、クライアントがプロキシ サーバーを使用してアクセスする場合、取得されるのはプロキシ サーバーの IP アドレスであり、実際のクライアント IP 住所。プロキシサーバー経由でクライアントの実際の IP アドレスを取得するには、 $_SERVER["HTTP_X_FORWARDED_FOR"] を使用して を読み取ります。

ただし、すべてのプロキシ サーバーが $_SERVER["HTTP_X_FORWARDED_FOR"] を使用してクライアントの実際の を読み取ることができるわけではないことに注意してください。 IP。このメソッドで読み取られるものの一部は、依然としてプロキシ サーバーの IP です。

PHP $_SERVER["REMOTE_ADDR"] を使用して、クライアントの を取得しますIP アドレスですが、クライアントがプロキシ サーバーを使用してアクセスする場合、取得されるのは、実際のクライアント IP アドレスです。 > IP アドレス。プロキシサーバー経由でクライアントの実際の IP アドレスを取得するには、 $_SERVER["HTTP_X_FORWARDED_FOR"] を使用して を読み取ります。ただし、すべてのプロキシ サーバーが $_SERVER["HTTP_X_FORWARDED_FOR"] を使用してクライアントの実際の IP を読み取ることができるわけではないことに注意してください。 、この方法で読み取られるものの一部は、依然としてプロキシ サーバーの IP です。

サーバー側IP関連変数

1. $_SERVER["SERVER_NAME" ] を取得するには、関数 gethostbyname() を使用する必要があります。この変数はサーバー側とクライアント側の両方で正しく表示されます。 (gethostbyname($_SERVER["SERVER_NAME"]);)

2. $_SERVER["SERVER_ADDR"]、サーバー側でテスト: 127.0.0.1 (これは、httpd.conf と同じです) 🎜>BindAddress の設定値に関連します)。クライアントでのテスト結果は正しいです。

19SESSION の生存時間

:php.ini を修正します。 session.gc_maxlifetime(この秒数が経過すると、保存されたデータは「ガベージ」とみなされ、ガベージ コレクション プロセスによってクリーンアップされます。) in 🎜>、その後再起動しますapache(注: ガベージ コレクションの有効時間が設定されていても、一定の確率でガベージ コレクションがトリガーされる可能性があります。 session.gc_probability = 1(ガベージ コレクション プロセスを開始する確率); session.gc_divisor = 1000 (ガベージ コレクション プロセスを開始する確率係数、現在は数千分の 1) ) ; セッションの初期化ごとに「ガベージ コレクション」プロセスが開始される確率を定義します。確率は gc_probability/gc_divisor を使用して計算されます。たとえば、1/100 は GC プロセスが開始される確率が 1% であることを意味します。 各リクエストでガベージ コレクション プロセスがトリガーされる確率)

string session_save_path([ string $path ] ) >session_set_cookie_params(ini$lifetime) を通じて、session ファイルを保存するパスを設定します。 ,…)sessionReplycookie の関連パラメーターを設定します (主に のライフサイクル) セッション)、php スクリプトの現在の実行に対してのみ有効です。したがって、他のスクリプトを設定する場合は、session_startを開始する前にこの関数を呼び出す必要があります。

setcookie()session_id情報を格納するを設定します。 > 関数 cookie ライフ サイクル。次のように session のライフ サイクルを制御します: setcookie(session_name(), session_id(), time() N) >,

例:

PHP開発リソース ネットワーク ホームページ : http://www.phpres.com/index.html,コンテンツの取得方法 ?答え:file_get_contents を使用します: $url =" http://www.phpres.com/index.html";

$contents= file_get_contents( $url); curl

を使用します。 🎜>$url =" http://www.phpres.com/index.html

";

$ch =curl_init();

$timeout= 5;

curl_setopt($ch,CURLOPT_URL, $url); >

curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, $timeout); 🎜>//

ユーザー検出が必要な Web ページでは、次の 2 行を追加する必要があります

//curl_setopt($ch,CURLOPT_HTTPAUTH, CURLAUTH_ANY); 🎜>

//curl_setopt($ch,CURLOPT_USERPWD, US_NAME.":".US_PWD);

$contents=curl_exec($ch);

curl_close($ch);

echo$contents;

を使用します

fopen->fread->fclose

$url =" http://www.phpres.com/index.html"; 🎜>

$handle =fopen ($url, "rb");

$contents= ""; {

$data =fread($handle, 1024);

if(strlen($data) == 0) {

ブレーク;

}

$data;

}while(true);

fclose($handle);

echo$contents; 🎜>

21

PHPheredocは特殊な文字列なので注意点はありますか? 答え: ①開始識別子と終了識別子は同じである必要があり、識別子は完全に英数字とアンダースコアで構成されている必要があり、数字やアンダースコアで始めることはできません。 ②開始識別子の前には 3 つの左山かっこが必要です:

<<<

heredoc 構文は、二重引用符で区切られた文字列と同じ解析規則に従います。つまり、変数とエスケープ シーケンスの両方が解析されます。唯一の違いは、ここでの二重引用符をエスケープする必要がないことです。

④ターミネータは行の先頭になければならず、その前にスペースやその他の無関係な文字を置くことはできません。さらに、開始識別子と終了識別子の後にスペースがあると構文エラーが発生します。 22

、投稿数の多い 10 人の名前を書き留めてください

SQL、次のテーブルを使用します: members(id,username,posts,pass,email) 答え: メンバーからユーザー名を選択 GROUP BY id ORDER BY COUNT(id) DESC limit0,10;

23

PHP error_reportingこの関数は何をしますか?回答 :エラー報告のレベルを設定します。このパラメータには、バイナリ ビット フィールドを表す任意の整数、または定数名を指定できます。

24、メールの形式が正しいかどうかを確認する関数を作成してください

答え: /^([_a-z0-9-] )(.[_a-z0-9-] )*@ ([a -z0-9-] )(.[a-z0-9-] )*(.[a-z]{2,4})$/

25 取得したパラメーターを含む、現在の実行スクリプトのパスを取得する方法を簡単に説明します。

答え: $_SERVER[HTTP_HOST].$_SERVER[PHP_SELF].'?'.$_SERVER [QUERY_STRING];

26JS フォーム ポップアップダイアログボックス関数は ? 入力フォーカスを取得する関数は ?

答え: ポップアップ ダイアログ ボックス:alert()、prompt()、confirm()

入力フォーカスの取得 focus()

27JS のリダイレクト関数は ?外部 JSファイル?

答え:ウィンドウ。 location.href;

??

人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート