PHP筆記試験の問題の概要

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-07-29 09:04:51
オリジナル
940 人が閲覧しました

1. リモート画像をローカルにキャプチャするにはどの関数を使用しますか?
fsockopen、A
2. 最大 3 つの値を見つける関数を作成します。 ){
* 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 次元配列の定義をサポートしていません。 0] = new array() で解決します
5. a.html と b.html が同じフォルダーにあるとします。a.html を 5 秒間開くと、JavaScript を使用して自動的に 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) content): 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. 新しいジョンを追加します。ユーザーへ array?
$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 開発リソースのホームページなどの 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. 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 ? 'Equal' : '等しくない';
?>
等しい、等しい、等しくない
19. MySQL データベースのフィールド タイプ varchar と 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) 自由に書いてください。ソート アルゴリズム (バブル ソートまたはクイック ソート)。ソート対象のオブジェクトが次元配列であると仮定します。
//バブルソート(配列ソート)
function bubble_sort($array)
{
$count = count($array);
if ($count for($i=0; $ ifor($j=$count-1; $j>$i; $j–){
if ($array[$j] $tmp = $array[$j];
$array[$j] = $array[$j-1];
$array[$j-1] = $tmp;
}
}
}
return $array;
}
//クイックソート(配列ソート)
function Quicksort($array) {
if (count($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 つの日付の違いを見つけます。 -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」に変換します。
方法:
関数 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 のレコードをすべて検索し、合計レコード数を表示します。それぞれ SQL ステートメント、ビュー、ストアド プロシージャを使用して実装されます。 proc_countNum(1,@no);
select @no;
Method: View:
create view v_countNum as select member_id,count(*) as countNum from member group by
member_id
select countNum from v_countNum where member_id=1

27 . js での前方および後方 Web ページのコード (前方:history.forward();=history.go(1);後方:history.back
();=history.go(-1); )

28 . echo count(“abc”); 何を出力しますか?
答え: 1
count — 配列内のセルの数またはオブジェクト内の属性の数をカウントします
int count (mixed$var [, int $mode ] )、var が配列でない場合、Countable インターフェイスを実装する型またはオブジェクトは 1 を返します。ただし、var が NULL の場合は結果は 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. 開発プロセス中にページの読み込みを高速化するために使用する方法の例を教えてください
回答: Aサーバーは必要な場合にのみリソースを開き、サーバー リソースを適時に閉じ、データベースにインデックスを追加します。ページは別のサーバー上に静的ファイル、画像、その他の大きなファイルを生成できます。コード最適化ツールを使用します

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

32. PHP クラスの static、public、private、protected の違いは何ですか?
static はクラス名でアクセスできます。
public は、クラスの内部サブクラスと外部サブクラスの両方からアクセスできます。
private はプライベートを意味し、このクラス内でのみアクセスできます。
protected は、このクラス、サブクラス、または親クラス内でのみアクセスできることを意味します。 ?
HEAD: ページのヘッダーのみが要求されます。
GET: 指定されたページ情報をリクエストし、エンティティ本体を返します。
POST: 指定された URI に対する新しい従属エンティティとして指定されたドキュメントを受け入れるようにサーバーに要求します。
(1) HTTP はサーバーと対話するためのさまざまなメソッドを定義しています。最も基本的なメソッドは GET と POST です。実際、GET はほとんどのリクエストに適していますが、POST はサイトの更新のみに予約されています。
(2) FORM を送信するとき、メソッドが指定されていない場合、デフォルトは GET リクエストです。フォームで送信されたデータは、URL から ? で区切られて追加されます。英数字はそのまま送信されますが、スペースは「+」記号に変換され、その他の記号は %XX に変換されます。ここで、XX は記号の 16 進数の ASCII (または ISO Latin-1) 値です。 GET リクエストによって送信されたデータは HTTP リクエスト プロトコル ヘッダーに配置されますが、POST によって送信されたデータはエンティティ データに配置されます。
GET によって送信されたデータは最大 1024 バイトのみですが、POST にはこの制限がありません。 。
(3) GET これは、ブラウザがサーバーにリクエストするために最も一般的に使用されるメソッドです。データの送信には POST メソッドも使用されますが、POST を使用する場合は、URI の後にデータが渡されるのではなく、独立した行として渡されます。このとき、それを示す Content_length ヘッダーも送信する必要があります。データの長さ、その後に空行が続き、その後に実際に転送されるデータが続きます。 Web フォームは通常、POST を使用して送信されます。

上記は、PHP の筆記試験の問題の概要を、関連する内容も含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。

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