在 PHP.net 与由 IBM Integration Bus提供的 PHP 实现之间存在一些差异。
下表显示每个函数的差别。
表 1. MySQL 函数
| 功能 |
差别 |
| mysql_fetch_field |
检查从 TINYTEXT 和 VARCHAR 返回的类型之间的差别。 一个是二进制对象,而另一个是字符串。 此实现都返回为 VARCHAR,因此无法进行区分。 调用返回数据库中定义的最大长度,而不是使用的最大长度。 例如:(VARCHAR[50] xyz = abc)在 PHP.net 上提供 3 ,在 IBM Integration Bus PHP 上提供 50 。 |
表 2. 字符串函数
| 功能 |
差别 |
| crypt |
在 Windows 上不可用。 |
| html_entity_decode |
如果指定的字符集提示不等于 UTF8,那么生成警告。 |
| htmlentities |
如果指定的字符集提示不等于 UTF8,那么生成警告。 |
| htmlspecialchars |
如果指定的字符集提示不等于 UTF8,那么生成警告。 |
表 3. 会话处理函数
| 功能 |
差别 |
| 会话处理函数 |
不支持 INI 选支持 session.use_trans_sid。 |
表 4. 文件系统函数
| 功能 |
差别 |
| 所有文件系统函数 |
不支持安全模式。 |
| clearstatcache |
不存在 statcache,因此该函数无效。 |
| flock |
无法使用 flock(, LOCK_EX) 以获取以只读方式打开的文件的互斥锁定,除非您还具有文件的些许可权;这并非意味着您必须以写方式打开文件,而是具有许可权执行此操作。 如果没有写许可权并且返回 False 指示尚未获取锁定,那么将生成警告。 |
| fopen |
在 fopen 中使用无效方式时, PHP.net 运行时会发出 "No such file or directory" 消息,而 IBM Integration Bus PHP 会发出一条消息,指出它是无效方式。 |
| fseek |
当您在 Windows (Windows 转换) 下使用带有 "t" 选项的 fopen 和文件方式时, fseek 不会以与运行时 PHP.net 运行时相同的方式运行。 |
| realpath |
realpath () 函数不会检测到由于 Java™中的规范文件名高速缓存而对先前是符号链接的文件名所作的更改。要复制 PHP 中的行为,您可以使用以下命令启动 JVM:Dsun.io.useCanonCaches=false |
表 5. BCMath Arbitrary Precision Mathematics 函数
| 功能 |
差别 |
| 所有 BCMath Arbitrary Precision Mathematics 函数 |
IBM Integration Bus PHP 发出 E_WARNING ,而 PHP.net 向 STDERR 写入警告。 |
| bcmul |
IBM Integration Bus PHP 不会截断结尾零。 |
| bcpow |
IBM Integration Bus PHP 不会截断结尾零。 |
| bcpowmod |
IBM Integration Bus 使用除 0 之外的小数位时, PHP 不支持尾部零。 |
表 6. 网络函数
| 功能 |
差别 |
| fsockopen |
不支持 errno 输出参数。 不支持 errstr 参数。 加密流(SSL 和 TLS)不可用。 |
表 7. 数组函数
| 功能 |
差别 |
| 所有数组函数 |
在排序使用的排序算法的权重相同的数组条目时,生成的排序数组的条目的顺序可能不同于 PHP.net 使用的排序算法所生成的顺序。 例如,值“a”、“b”和“c”的 SORT_NUMERIC 排序。 |
表 8. 多字节字符串函数
| 功能 |
差别 |
| 所有多字节字符串函数 |
如果针对字符数据指定正确的编码并且如果字符数据正确,那么 mb_* functions 采用与 MBString 相同的方式运行。 如果字符数据无效或者如果未指定正确的编码,那么不保证输出与 MBString 相同。 例如,mb_substr,如果传入 str 并且将其定义为 UTF-32,那么在实际为 ASCII 或 UTF-8 时,无法获得与 PHP.net 相同的结果。 |
| mb_convert_encoding |
不支持包含多种编码的数组或字符串,或者作为 from_encoding 值传递的 auto。 在这些情况下,将生成 PHP 警告。 |
表 9. 程序执行函数
| 功能 |
差别 |
| 所有程序执行函数 |
IBM Integration Bus PHP 不支持安全方式。 |
| proc_open |
IBM Integration Bus PHP 不支持由可选的第 6 个参数指定的其他选项。 |
| proc_terminate |
IBM Integration Bus PHP 不支持将信号发送到子进程,如可选的第二个参数所指定。 |
| proc_get_status |
此函数不受 IBM Integration Bus PHP 的支持。 |
表 10. 错误处理和记录函数
| 功能 |
差别 |
| error_log |
不支持 message_type 为 1(电子邮件)。 将发出警告,并且函数返回 false。 |
表 11. 流函数
| 功能 |
差别 |
| stream_get_meta_data |
返回中的未读字节字段(已使用的缓冲区大小)并非始终与文件流相同,因为文件流实现不使用缓冲区。 |
| stream_context_create |
流上下文支持受限;HTTP 流类型仅支持头、方法、超时和内容选项。 |