ホームページ  >  記事  >  バックエンド開発  >  PHP筆記試験問題の概要、PHP試験問題の概要_PHPチュートリアル

PHP筆記試験問題の概要、PHP試験問題の概要_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-12 08:59:48880ブラウズ

PHP 筆記試験問題の概要、PHP テスト問題の概要

1. リモート画像をローカルにキャプチャするにはどの関数を使用しますか?

fsockopen、A

2. 3 つの値の最大値を見つけます .

function($a,$b,$c){
* W0 z* u6 k+ e. La a: }5 } return $a>$b ($a>$c?) ? $a : $c) : ($b>$c? $b : $c );
5 O: F6 v1 W# U}

3. PHP を使用して、前日の時刻を出力します。形式は 2007 年 5 月 10 日 22:21: 21

Echo date('Y-m-d H:i:s',strtotime('-1 day'));

4. そうでない場合、JavaScript は 2 次元配列を定義できますか? 、どうやって解決できますか?

Javascript は 2 次元配列をサポートしていません 配列定義は arr[0] = new array() を使用することで解決できます

5 a.html と b.html が同じ内にあるとします。 JavaScript を使用して、a.html を開いてから 5 秒後に b.html に移動します。


function go2b(){
window.location = “b.html”;
window.close();
}

setTimeout( “go2b()”,5000 ); //5秒後に自動的にgo2bを実行( )




6, //現在のページを閲覧しているユーザーのIPアドレス: 127.0.0.1
echo $_SERVER["REMOTE_ADDR"]."
";
//クエリの文字列( URL) 最初の疑問符? その後の内容): id=1&bi=2
echo $_SERVER["QUERY_STRING"]."
";
//現在実行中のスクリプトが配置されているドキュメント ルート ディレクトリ: d:inetpubwwwroot
echo $_SERVER[" DOCUMENT_ROOT"]."
";
7. HTTP 1.0 では、ステータス コード 401 の意味は「ファイルが見つかりません」というプロンプトが返された場合、ヘッダー関数を使用できます。ステートメントは header("HTTP /1.0 404 Not Found");
答え: 401 は未承認を意味します; header("HTTP/1.0 404 Not Found");

8. フォルダー内のすべてのファイルとサブフォルダーを走査できる関数を作成します。
function my_scandir($dir)
{
$files=array();
if(is_dir($dir))
{
if($handle=opendir($dir))
{
while( ($file=readdir($handle))!==false)
{
if($file!=”.” && $file!=”..”)
{
if(is_dir($dir.”/” .$file))
{
$files[$file]=my_scandir($dir.”/”.$file);
}
else
{
$files[]=$dir.”/”.$file;
}
}
}
closedir($handle);
return $files;
}
}
}
print_r(my_scandir(“D:Program FilesInternet ExplorerMUI”));
?>



9.は users 配列に追加されますか?

$users[] = 'john'; array_push($users,'john');



10. PHP の error_reporting の関数は何ですか?
答え: error_reporting() を設定します。 PHP のエラー報告レベルを示し、現在のレベルを返します。



11. メールの形式が正しいかどうかを検証する関数を正規表現(正規表現)を使用して記述してください。
答え:

$email=$_POST['email'];
if(!preg_match('/^[w.]+@([w.]+).[a-z]{2, 6}$/i',$email)) {
echo "メール検出失敗";
}else{
echo "メール検出成功";
}

?>

12. PHP を使用して表示コードを作成します。クライアント IP とサーバー IP の場合

答え: 印刷クライアント IP: echo $_SERVER['REMOTE_ADDR']; または: getenv('REMOTE_ADDR');

印刷サーバー IP: echo gethostbyname("www.bolaiwu.com ")



13. SESSION の有効期間を変更する方法 (1 ポイント)。

答え: 方法 1: php.ini の session.gc_maxlifetime を 9999 に設定し、Apache を再起動します

方法 2: $savePath = ". /session_save_dir/ ”;

$lifeTime = 時間 * 秒;

session_save_path($savePath);

session_set_cookie_params($lifeTime);

session_start();

方法 3: setcookie() と session_set_cookie_params($lifeTime) ;



14. PHP Development Resource Network のホームページのような Web ページのアドレスがあります: http://www.phpres.com/index.html そのコンテンツ ($1 ポイント) を取得するにはどうすればよいですか?

答え:方法 1 (PHP5 以降の場合):

$readcontents = fopen("http://www.phpres.com/index.html", "rb");

$contents = stream_get_contents($readcontents);

fclose ($readcontents);

echo $contents;

方法 2:

echo file_get_contents(“http://www.phpres.com/index.html”);



15 渡される値を説明してください。 in php 参照渡しとの違い。いつ値渡しするのか、いつ参照渡しするのか (2​​ 点)

答え: 値渡し: 関数スコープ内の値への変更は関数の外では無視されます

参照渡し: 値への変更はすべて無視されます。関数のスコープ内では無視されます これらの変更は関数の外にも反映されます

長所と短所: 値で渡す場合、PHP は値をコピーする必要があります。特に大きな文字列やオブジェクトの場合、これはコストのかかる操作になる可能性があります。

参照渡しでは値をコピーする必要がないため、パフォーマンスの向上に非常に役立ちます。



16. 標準 URL からファイル拡張子をできるだけ効率的に抽出する関数を作成します

例: http://www.sina.com.cn/abc/de/fg.php?id =1 php または .php を取り出す必要があります

答え 1:

function getExt($url){

$arr = parse_url($url);

$file =basename($arr['path']);

$ext =explode(“.”,$file);

return $ext[1];

}

答え 2:

function getExt($url) {

$url = Basename($url) ;

$pos1 = strpos($url,”.”);

$pos2 = strpos($url,”?”);

if(strstr($url,”?”)){

return substr ($url,$pos1 + 1,$pos2 – $pos1 – 1);

} else {

return substr($url,$pos1);

}

}



17. 5 種類を使用する上記のメソッドはファイルの拡張子を取得するために使用されます

要件: dir/upload.image.jpg、.jpg または jpg を検索、
PHP 独自の処理関数を使用して処理する必要があります。メソッドは明らかに繰り返すことができず、 get_ext1($file_name)、get_ext2($file_name) などの関数にカプセル化されます

function get_ext1($file_name){

return strrchr($file_name, '.');

}

function get_ext2($file_name) ){

return substr( $file_name, strrpos($file_name, '.'));

}

function get_ext3($file_name){

return array_pop(explode('.', $file_name));

}

function get_ext4( $file_name){

$p = pathinfo($file_name);

return $p['extension'];

}

function get_ext5($file_name){

return strrev( substr(strrev($file_name) , 0, strpos(strrev($file_name), '.')));

}



18,$str1 = null;
$str2 = false;
echo $str1==$ str2 ? '等しい' : '等しくない';

$str3 = ”;
$str4 = 0;
echo $str3==$str4 ? '等しくない';

$str5 = 0;
$str6 = '0';
echo $str5===$str6 ? '等しい' : '等しくない';
?>

等しい 等しい 等しくない



19. varchar 型と MySQL データベースの型 char の主な違いは何ですか? どちらのフィールドが検索効率が高いのですか?
Varchar は可変長であり、ストレージ領域を節約しますが、char は固定長です。 varchar は非固定長のため、char 型よりも検索効率が高く、まず長さを検索してからデータを抽出する必要があり、char 固定長型よりも 1 ステップ多く、効率が低くなります



20. JavaScript を使用して Image タグを生成する 3 つの方法を記述してください (ヒント: メソッド、オブジェクト、HTML の観点から考えてください)

(1)var img = new Image();
(2)var img = document.createElementById("image")
(3 )img.innerHTML = “”



21. 16. XHTML と HTML の最も大きな違いを 2 点以上説明してください
(1) 必ず閉じてください。 HTML はもっとカジュアルです

22. ソート アルゴリズムを作成します。これは、バブル ソートまたはクイック ソートであり、ソート対象のオブジェクトが次元配列であると仮定します。

//バブルソート(配列ソート)
function bubble_sort($array)
{
$count = count($array);
if ($count for($i=0 ; $ifor($j=$count-1; $j>$i; $j–){
if ($array[$j] < $array[$j- 1 ]){
$tmp = $array[$j];
$array[$j] = $array[$j-1];
$array[$j-1] = $tmp;
}
}
}
return $array;
}
//クイックソート(配列ソート)
function Quicksort($array) {
if (count($array) <= 1) return $array;
$key = $array[0 ] ;
$left_arr = array();
$right_arr = array();
for ($i=1; $iif ($array[$i] < = $key)
$left_arr[] = $array[$i];
else
$right_arr[] = $array[$i];
}
$left_arr = クイックソート($left_arr);
$right_arr = クイックソート( $ right_arr);
return array_merge($left_arr, array($key), $right_arr);
}



23. 3 つ以上の MySQL データベース ストレージ エンジンの名前を書き込みます (ヒント: 大文字と小文字は区別されません)
MyISAM 、 InnoDB 、BDB (Berkeley DB)、マージ、メモリ (ヒープ)、サンプル、フェデレーション、アーカイブ、CSV、ブラックホール、MaxDB および 12 を超えるエンジン



24 など、2 つの日付の違いを見つけます。 from 2-5 ~ 2007-3-6
方法 1:
class Dtime
{
function get_days($date1, $date2)
{
$time1 = strtotime($date1);
$time2 = strtotime($date2);
return ($time2-$time1)/86400;
}
}
$Dtime = new Dtime;
echo $Dtime->get_days('2007-2-5', '2007-3-6');
? >
方法 2:
$temp =explode('-', '2007-2-5');
$time1 = mktime(0, 0, 0, $temp[1], $temp [2], $temp[0]);
$temp =explode('-', '2007-3-6');
$time2 = mktime(0, 0, 0, $temp[1], $temp [2], $temp[0]);
echo ($time2-$time1)/86400;
方法 3: echo abs(strtotime(“2007-2-1″)-strtotime(”2007-3-1″) ))/60/60/24 時差を計算します



25. 次の機能を実現する関数を作成してください:
文字列「open_door」を「OpenDoor」に、「make_by_id」を「MakeById」に変換します。
メソッド:
function str_explode($str){
$str_arr=explode("_",$str);$str_implode=implode(" ",$str_arr); $str_implode=implode
("",explode(" " ,ucwords($str_implode)));
return $str_implode;
}
$strexplode=str_explode(“make_by_id”);print_r($strexplode);
方法 2: $str="make_by_id!";
$expStr=explode ("_",$str);
for($i=0;$i{
echo ucwords($expStr[$i]);
}方法 3: echo str_replace (' ',",ucwords(str_replace('_',' ','open_door')));



26. テーブル内に ID のレコードが複数あります。この ID のすべてのレコードを見つけて表示しますSQL ステートメント、ビュー、ストアド プロシージャを使用して実装されるレコードの総数。 =columnId;
end
call proc_countNum(1,@no);
select @no;
Method: View:
create view v_countNum as select member_id,count(*) as countNum from メンバー グループ by
member_id
select countNum v_countNum ここで member_id=1



27. JS での前方および後方 Web ページのコード (前方:history.forward();=history.go(1);後方:history.back
();=history.go (- 1); [, int $mode ] )、var が配列型または Countable インターフェイスを実装するオブジェクトでない場合、結果は 0 になります。

オブジェクトの場合、SPL がインストールされている場合、Countable インターフェイスを実装することで count() を呼び出すことができます。このインターフェイスには、count() 関数の戻り値を返すメソッド count() が 1 つだけあります。



29. 整数データを大きい順に並べる関数を書いてください。高い実行効率が求められます。実行効率を向上させる方法について説明します。 (この関数は自分で実装する必要があり、php関数は使用できません)

function BubbleSort(&$arr)
{
$cnt=count($arr);
$flag=1;
for( $i= 0;$i<$cnt;$i++)
{
if($flag==0)
{
return;
}
$flag=0;
for($j=0;$j<$ cnt-$ i-1;$j++)
{
if($arr[$j]>$arr[$j+1])
{
$tmp=$arr[$j];
$arr[$ j]= $arr[$j+1];
$arr[$j+1]=$tmp;
$flag=1;
}
}
}
}
$test=array(1,3,6) ,8, 2,7);
BubbleSort($test);
var_dump($test);
?>

30 開発プロセス中にページの読み込みを高速化するために使用する方法の例を教えてください
回答: はい。サーバー リソースが利用可能な場合にのみ開かれ、サーバー リソースは時間内に閉じられ、ページは静的ファイル、画像、その他の大きなファイルを別のサーバーに生成できます。コード最適化ツールを使用します



31. 次のコードは何を生成しますか?なぜですか?
$num =$num *10;
}
multiply();
echo $ num;
関数 multiply() は $num をグローバル変数 (グローバル $num や $_GLOBALS['num'] など) として指定していないため、$num の値は 10 です。



32. PHP クラスの static、public、private、protected の違いは何ですか?

static はクラス名にアクセスできます

public はグローバルを意味し、内部サブクラスと外部サブクラスの両方からアクセスできます

private はプライベートを意味し、

protected は保護されていることを意味し、このクラス、サブクラス、または親クラスでのみアクセスできます。 、HTTP プロトコルの POST と HEAD

HEAD: ページのヘッダーのみをリクエストします。

GET: 指定されたページ情報をリクエストし、エンティティ本体を返します。

POST: 指定されたドキュメントを、識別された URI に対する新しい従属エンティティとして受け入れるようにサーバーに要求します。

(1) HTTP はサーバーと対話するためのさまざまなメソッドを定義しています。最も基本的なメソッドは GET と POST です。実際、GET はほとんどのリクエストに適していますが、POST はサイトの更新のみに予約されています。

(2) フォームを送信するとき、メソッドが指定されていない場合、デフォルトは GET リクエストで、フォームで送信されたデータは URL から ? で区切られて追加されます。英数字はそのまま送信されますが、スペースは「+」記号に変換され、その他の記号は %XX に変換されます。ここで、XX は記号の 16 進数の ASCII (または ISO Latin-1) 値です。 GET リクエストによって送信されたデータは HTTP リクエスト プロトコル ヘッダーに配置されますが、POST によって送信されたデータはエンティティ データに配置されます

GET によって送信されたデータは最大 1024 バイトのみですが、POST にはこれがありません。限界。

(3) GET これは、ブラウザがサーバーにリクエストするために最も一般的に使用されるメソッドです。データの送信には POST メソッドも使用されますが、POST を使用する場合は、データが URI に付加されて渡されるのではなく、独立した行として渡されます。このとき、Content_length ヘッダーも送信する必要があります。データの長さを示し、その後に空白行が続き、その後に実際に転送されるデータが続きます。 Web フォームは通常、POST を使用して送信されます。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1096606.html技術記事 PHP 筆記試験問題の概要、PHP テスト問題の概要 1. リモート画像をローカルにキャプチャするにはどの関数を使用しますか? fsockopen、A 2. 最大 3 つの値を見つける関数を作成するには、最小限のコードを使用します ( $a、$b、$c...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。