IBM Integration Bus PHP 和 PHP.net 之间的差异

在 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 流类型仅支持头、方法、超时和内容选项。