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. 如何测试私有 Private/Internal 方法

    在实际开发中,经常会遇到这样的情况. 一个共有的 Public 方法实现某一主要功能,但是由于该功能的实现非常复杂,需要很多的辅助类,辅助方法.由于代码封装性的需求,我们通常需要把这些辅助的类方法定义 ...

  2. linux下修改ip地址,默认网关以及DNS

    *修改IP地址 即时生效: ifconfig eth0 192.168.1.100  netmask 255.255.255.0 重启生效: vim  /etc/sysconfig/network-s ...

  3. Fast RCNN 学习

    因为项目需要,之前没有接触过深度学习的东西,现在需要学习Fast RCNN这个方法. 一步步来,先跟着做,然后再学习理论 Fast RCNN 训练自己数据集 (1编译配置) Fast RCNN 训练自 ...

  4. Web服务器压力测试一例

    近期部门新上线一个服务,我们使用ab和locust分别测试 目前项目属于demo阶段,对访问量的支持不要求太高,我们暂且设定在500请求,20并发 工具介绍 ab ab全称为:Apache HTTP ...

  5. 【贪心】【TOJ4107】【A simple problem】

    Given three integers n(1≤n≤1018), m(1≤m≤105), k(1≤k≤1018). you should find a list of integer A1,A2,- ...

  6. C# Web对文件的管理

    /// <summary> /// 创建新文件 /// </summary> /// <param name="parentPath">文件路径 ...

  7. 引言:Canvas绘图API快速入门

    引言:Canvas绘图API快速入门 在接触HTML5的初学者包括我都在很多地方见到非常炫的一些页面,甚至好多学习HTML5的开发者都是冲着Web端的页游去的,那么HTML5那么绚丽的页面效果以及游戏 ...

  8. MSMQ是什么?

    MSMQ(MicroSoft Message Queue,微软消息队列)是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布于相连的网络空间中的任一位 ...

  9. C# 5 break continue 球员成绩 彩票 选班长

        二.新课: 1.break与continue. 这两个关键字一般放在循环的花括号里面使用. break--结束整个循环. continue--结束本次循环,进入下次循环. break的案例: ...

  10. javascript 手机号抽奖

     案例   ----           手机号抽奖   开始抽奖  停止                                                       *具体的备注在代 ...