PHP技術者認定

1,

【日本語文字のメール送信】 (2016年10月31日)
以下のコードは桃家タローさん宛てにメールを送るためのものである。コード内の[(1)]に入る正しいものを1つ次の記述の中から選択せよ。
ただし、PHPの言語設定や内部文字エンコーディングは環境に合わせて日本語で適切に動作するよう設定されているものとする。
<?php
$name = "桃家タロー";
$to = [(1)]($name) . "<php-taro@example.jp>";
$subject = "ご挨拶";
$message = "はじめまして、$name さん";
mb_send_mail($to, $subject, $message);
?>
1. iconv_substr
2. mb_convert_encoding
3. base64_encode
4. mb_encode_mimeheader
5. mb_ereg_replace

2,【日本語文字コードのエンコーディング変換】(2016年10月28日)

日本語文字コードのエンコーディング変換を行うために、正しいステートメントを1つ次の記述の中から選択せよ。
ただし、内部エンコーディングの文字列が代入された変数 $text をシフトJISで標準出力するものとする。

1. print mb_convert_encoding($text, 'SJIS');
2. print mb_detect_encoding($text, 'SJIS');
3. print mb_replace_encoding($text, 'SJIS');
4. print mb_substring($text, 'SJIS');
5. print mb_ereg_replace($text, 'SJIS');

3,問題 (2016年10月27日)
【オブジェクトの作成】
PHPで新しいオブジェクトの作成について、誤っているものを1つ次の記述の中から選択せよ。ただし、PHPの設定はデフォルト設定とする。
1. PHP5では $obj = & new MyClass; のように&オペレータを利用しても実質的に $obj = new MyClass; と変わらない。
2. PHPで新しいオブジェクトインスタンスの作成を行う際は、new 演算子を使用する。
3. 既存のオブジェクトからコピーを作成するにはclone演算子を使用する。
4. PHP5でも=(代入)演算子を用いてオブジェクトのコピーが作成できる。

4,問題 (2016年10月26日)

【オブジェクトの基本】
PHPのオブジェクトに関して、誤っているものを1つ次の記述の中から選択せよ。
1. クラスは、ある種のオブジェクトの変数と関数を記述するテンプレート(template :模板)または設計図のようなもので、 class で定義する。
2. メソッド(method :方法)はクラスの中で定義された関数のことで、method で定義する。
3. クラスの中で定義された変数のことをプロパティ(property:属性)と呼ぶ。
4. インスタンス(instance:实例)とはクラス定義から実体化されたオブジェクトの事でメソッドを使ってプロパティを操作できる。

5,【デバッグ作業について】(20161025)

デバッグの際に、ファイルが呼び出されたことを確認するため、そのファイルの先頭に一時的に追加することで、ファイル名を表示して処理を終わらせるのに有効なステートメント(【英】statement ;声明)を1つ次の記述の中から選択せよ。
1. print("Stop in: ". File()) ;
2. echo "Stop in: __FILE__");
3. die ("Stop in: " . __FILE__ );
4. die ("Stop in: " . File() );

6,【例外とエラー】 (2016年10月24日)

例外とエラーについて、正しいものを1つ次の記述の中から選択せよ。
1. 例外処理とエラー処理は同じエラー処理機構で組み合わせて利用する。
2. デフォルトの例外処理を置き換える事はできない。
3. エラー処理はユーザ定義のエラー処理に置き換える事ができる。
4. PHPの例外はネストすることが出来ない。

回答:

1,正解4

解説:1),iconv_substr(str ,offset, length, charset):iconv_substr() 截取字符串的部分
参数 charset 规定字符集
eg:echo iconv_substr($str,0,3),'<br/>';
echo iconv_substr($str,0,3,'utf-8');
2),mb_convert_encoding — 转换字符的编码
string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding = mb_internal_encoding() ] )
将 string 类型 str 的字符编码从可选的 from_encoding 转换到 to_encoding。
eg:
/* 转换内部编码为 SJIS */
$str = mb_convert_encoding($str, "SJIS");
/* 将 EUC-JP 转换成 UTF-7 */
$str = mb_convert_encoding($str, "UTF-7", "EUC-JP");
/* 从 JIS, eucjp-win, sjis-win 中自动检测编码,并转换 str 到 UCS-2LE */
$str = mb_convert_encoding($str, "UCS-2LE", "JIS, eucjp-win, sjis-win");
/* "auto" 扩展成 "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
$str = mb_convert_encoding($str, "EUC-JP", "auto");
3)
string base64_encode ( string $data )
使用 base64 对 data 进行编码。
设计此种编码是为了使二进制数据可以通过非纯 8-bit 的传输层传输,例如电子邮件的主体。
Base64-encoded 数据要比原始数据多占用 33% 左右的空间。
eg:
<?php
$str = 'This is an encoded string';
echo base64_encode($str);
?>->
以上例程会输出:
VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==

4)正解mb_send_mail()関数は、件名($subject)と本文($body)は自動的に適切な文字エンコーディング(ISO-2022-JP)に変換するが、宛先($to)やヘッダー(第4引数)は変換しない。このため、mb_encode_mimeheader()関数にてMIMEヘッダーエンコードを行う必要がある。

5)正则表达式替换函数,看例子

Exemple with preg_replace :

<?php $data = preg_replace("/[^A-Za-z0-9\.\-]/","",$data); ?> 
Exemple with mb_ereg_replace : 
<?php $data = mb_ereg_replace("[^A-Za-z0-9\.\-]","",$data); ?>

2,正解:1

mbstring拡張モジュールに含まれる、mb_convert_encoding()関数がマルチバイトに対応した文字コードのエンコーディング変換を行う。
ここでは、元の文字コードのエンコーディングはデフォルトの自動判別にしてあるが、実際には正しいエンコーディングを明示することが望ましい。

3正解:4

4)PHP5では=(代入演算子)でオブジェクトのコピーは作成できない。古いPHP5ではphp.iniの設定でPHP4と同じように=演算子でオブジェクトのコピーが作成されるオプションがあったが、デフォルト設定ではオブジェクトのハンドルがコピーされオブジェクトはコピーされない。

1) PHP5以降のPHPではオブジェクトがハンドルで扱われる。オブジェクト変数の参照を&オペレータで代入しても、オブジェクトをそのまま代入しても、結果的に同じオブジェクトを参照する。
2) new演算子は新しいオブジェクトを作成する。
3) clone演算子は既存のオブジェクトからコピーを作成する。

4,

○ 2. 正解です!
解説:
クラスの中のメソッドを定義するための関数を記述する場合も function を使う。

5,

注释:

PHP手册:die()Equivalent to exit()。
die()和exit()都是中止脚本执行函数;其实exit和die这两个名字指向的是同一个函数,die()是exit()函数的别名。该函数只接受一个参数,可以是一个程序返回的数值或是一个字符串,也可以不输入参数,结果没有返回值。
参考:虽然两者相同,但通常使用中也有细微的选择性。例如:
当传递给exit和die函数的值为0时,意味着提前终止脚本的执行,通常用exit()这个名字。
echo "1111"; 
exit(0);
当程序出错时,可以给它传递一个字符串,它会原样输出在系统终端上,通常使用die()这个名字。
$fp=fopen("./readme.txt","r") or die("不能打开该文件");

__FILE__:常量(路径)

dirname(__FILE___) 函数返回的是脚本所在在的路径

故选3

6,

解説:3)

3) set_error_handler関数でユーザ定義エラーハンドラに置き換える事ができる。
1) 例外処理とエラー処理は別の機能である。
2) デフォルトの例外処理はset_exception_handler関数でユーザ定義例外ハンドラに置き換えることができる。
4) PHP 5.3から例外はネストすることができる。

php技能考试每日一练的更多相关文章

  1. CSS3每日一练之内容处理-嵌套编号

    出处:http://www.w3cfuns.com/thread-5592229-1-17.html 1.大标题一   1.子标题   2.子标题   3.子标题2.大标题二   1.子标题   2. ...

  2. CSS3每日一练之选择器-结构性伪类选择器

    <!DOCTYPE HTML> <html> <head> <meta charset="gb2312"> <title> ...

  3. HTML5每日一练之progress标签的应用

    progress标签:从名字上来看,估计大家也能猜到这个标签是什么标签了,没错,他是一个进度条.在HTML5中我们终于可以不用模拟了. <progress id="W3Cfuns_pr ...

  4. HTML5每日一练之figure新标签的应用

    igure元素是一种元素的组合,可带有标题(可选).figure标签用来表示网页上一块独立的内容,将其从网页上移除后不会对网页上的其他内容产生影响.figure所表示的内容可以是图片.统计图或代码示例 ...

  5. HTML5每日一练之details展开收缩标签的应用

    details标签的出现,为我们带来了更好的用户体验,不必为这种收缩展开的效果再编写JS来实现.注:目前仅Chrome支持此标签. details有一个新增加的子标签——summary,当鼠标点击su ...

  6. 每日一小练——Eratosthenes 筛选法

    上得厅堂.下得厨房,写得代码.翻得围墙,欢迎来到睿不可挡的每日一小练! 题目:Eratosthenes筛选法 内容: 求质数是一个非常普遍的问题,通常不外乎用数去除.除到不尽时,给定的数就是质数.可是 ...

  7. 每日一小练——高速Fibonacci数算法

    上得厅堂,下得厨房,写得代码,翻得围墙,欢迎来到睿不可挡的每日一小练! 题目:高速Fibonacci数算法 内容:先说说Fibonacci数列,它的定义是数列:f1,f2....fn有例如以下规律: ...

  8. linux每日一练:Enable multithreading to use std::thread: Operation not permitted问题解决

    linux每日一练:Enable multithreading to use std::thread: Operation not permitted问题解决 在linux在需要使用c++11时会遇到 ...

  9. linux命令每日一练:find与rm实现查找并删除目录或文件

    linux命令每日一练 linux中find与rm实现查找并删除目录或文件 linux 下用find命令查找文件,rm命令删除文件. 删除指定目录下指定文件 find 要查找的目录名 -name .s ...

随机推荐

  1. MFC连接ftp服务器

    CInternetSession* m_pInetSession; CFtpConnection*   m_pFtpConnection; //连接服务器的函数 BOOL CftpClientDlg: ...

  2. 续上文----线性表之单链表(C实现)

    本文绪上文线性表之顺序表(C实现) 本文将继续使用单链表实现线性表的另外一种存储结构.这种使用链表实现的存储结构在内存中是不连续的. C实现代码如下: #include<stdio.h> ...

  3. adobe reader安装完成之前被中断,错误代码150210解决方法

    adobe reader安装完成之前被中断,错误代码150210解决方法出现这种情况是因为之前安装过adobe reader但是没有卸载删除干净进而导致重新安装时无法安装.为什么卸载不了大多数是因为3 ...

  4. SQL中如何使用UPDATE语句进行联表更新(转)

    在本例中: 我们要用表member中的name,age字段数据去更新user中的同字段名的数据,条件是当user 中的id字段值与member中的id字段值相等时进行更新. SQL Server语法: ...

  5. SecureCRT按退格键出现^H问题解决

    解决办法一: 解决办法二: ctrl+backspace.即是返回

  6. OpenCms创建站点过程图解——献给OpenCms的刚開始学习的人们

    非常多人都听说了OpenCms,知道了它的强大,索性的下载安装了,最终见到了久违OpenCms,看到了它简洁的界面,欣喜过后却不免一脸茫然,这个东西怎么用,我怎么用它来建站,从哪開始,无从下手,找资料 ...

  7. Windows 应用程序结构

    Windows 应用程序结构

  8. 自己动手写处理器之第四阶段(1)——第一条指令ori的实现

    将陆续上传本人写的新书<自己动手写处理器>(尚未出版),今天是第11篇,我尽量每周四篇 第4章 第一条指令ori的实现 前面几章介绍了非常多预备知识,也描绘了即将要实现的OpenMIPS处 ...

  9. SVG-1

    <rect>矩形 <circle>圆 <ellipse>椭圆 <line>直线 <polyline>折线 <polygon>标签 ...

  10. Nodejs随笔(三):全局对象之global

    首先,进入node REPL: mesogene@mesogene-team:~$ node > 查看global对象,发现其他全局对象(包括Buffer.require对象)以及全局方法都包含 ...