设为首页 收藏本站
查看: 658|回复: 0

[经验分享] 从PHP5.2.x迁移到PHP5.3.x

[复制链接]

尚未签到

发表于 2018-12-20 10:18:28 | 显示全部楼层 |阅读模式
  从PHP5.2.x迁移到PHP5.3.x,这是官方提供的Migrating from PHP 5.2.x to PHP 5.3.x的翻译。还未完成。 文章参考了此文的翻译http://www.flyinghail.net/?p=99 在此表示感谢。
  翻译追求表意,由于部分函数/类没有使用经验,翻译出错难免,请大家指正以修改、完善。
  目录
  一、PHP 5.3.x中发生了什么变化
  二、向后不兼容的变化
  三、新功能
  四、Windows支持的变化
  五、SAPI modules中的变化
  六、PHP 5.3.x中不建议使用的功能
  七、PHP 5.3.x中去除不推荐的功能
  八、新参数
  九、新函数
  十、新的stream wrappers
  十一、新的类常量
  十二、新方法
  十三、新扩展
  十四、移除的扩展
  十五、扩展中的其他变化
  十六、新的类
  十七、新的全局常量
  十八、INI文件handling的变化
  十九、其他变化
  一、PHP 5.3.x中发生了什么变化
  PHP 5.3.x中绝大多数的改良对现有代码无影响。但是需要考虑一小部分不兼容和新功能,并且在生产环境中切换PHP版本需要做下test。
  从更旧的版本升级到php5.3.x,相关文档如下
  Upgrade Notes for PHP 5.2.x.
  Upgrade Notes for PHP 5.1.x.
  Migrating from PHP 4 to PHP 5.
  二、向后不兼容的变化
  尽管绝大多数PHP5代码不需修改即可运行,但是请留意一些向后不兼容的变化:
  所有PHP5.3.X附带的extension使用了新的参数解析API,如果传入不兼容的参数将导致函数返回NULL。
  有部分例外情况,例如get_class()在发生错误的时候继续返回FALSE
  clearstatcache()默认不再清除realpath的缓存
  realpath()现在完全独立于操作系统,意味着例如__FILE__ . "/../x"这样的无效相对路径将不能再运行。
  call_user_func() 这一系的函数现在可以使用 $this ,含父类。
  array相关函数:natsort(), natcasesort(), usort(), uasort(), uksort(), array_flip(), 和 array_unique()不再接受object类型的参数
  如果要使用,请先把object转换为数组。
  之前参数为引用的函数接受直接的值,现在则会产生一个fatal error。
  任何之前参数直接传常量或者字符的,需要先赋值到一个变量再调用函数。
  举例
  function test(&$a) {
  echo 'OK';
  }
  test('a');
  PHP5.3.X中将导致一个fatal error
  新的mysqlnd函数库必须使用新的MySQL4.1的41字节的密码。使用16字节的旧密码将导致mysql_connect()和类似函数产生"mysqlnd cannot connect to MySQL 4.1+ using old authentication."的错误信息。
  和libmysql一样,新的mysqlnd函数库不会读取mysql配置文件(my.cnf/my.ini)
  如果你的代码依赖于mysql的配置文件,你可以用mysqli_options()函数加载。
  注意,这意味着如果PDO MYSQL兼容mysqlnd则PDO::MYSQL_ATTR_READ_DEFAULT_FILE 和 PDO::MYSQL_ATTR_READ_DEFAULT_GROUP不会被defined。
  SplFileInfo和其他目录相关的类返回的路径字符结尾处的"/"将被移除。
  __toString魔术方法不再接受参数
  __get, __set, __isset, __unset, 和 __call必须使用public并且不能再定义为静态方法
  魔术方法__call现在能调用private和protected方法。
  函数内include或者require一个文件,文件内将不能使用func_get_arg(), func_get_args() 和 func_num_args()函数。
  以下关键词成为保留关键词,不能以其为其他函数、类命名。
  goto
  namespace
  三、新功能
  PHP 5.3.0提供了大量新功能
  增加命名空间(namespaces)的支持
  对迟静态绑定(Late static binding)的支持
  对跳转标签的支持(即有限的goto)
  增加对闭包Closures(Lambda/匿名函数)的支持
  新的魔术方法:__callStatic 和 __invoke.
  支持 Nowdoc 语法,类似于加上单引号的Heredoc 语法。
  现在可以将 Heredocs 用来初始化静态变量与类中成员和常量
  作为新增的Nowdoc语法的补充,现在可以使用双引号来声明。
  可以在类以外使用const定义常量。
  三元运算符现在可以使用简写 ?:
  现在HTTP状态200至399都被HTTP stream wrapper认为是成功的。
  现在能够动态访问静态方法
  异常处理可以嵌套使用
  默认开启新的垃圾回收器以解决循环引用(circular references)问题。
  mail()函数支持日志记录(仅记录使用这个函数发送的邮件)
  四、为支持 Windows 所做的修改
  与windows有关的修改
  支持的最低Windows 版本是Windows XP SP3;Windows 2000; Windows 98, ME 和 NT4 不再支持。
  Windows 二进制包不再支持i386 和 i486 。
  实验性的64位版本的PHP 。
  编译器支持VC++9(VS2008)
  同时Snapshots和releases支持VC9. 使用 VC6 编译的二进制包依旧被支持、与VC9同步发行。
  PDO_OCI使用Oracle 10 或 11 客户端库的 php_pdo_oci.dll取代 php_pdo_oci8.dll 库 (注意没有 ‘8′) 。
  依然支持连接数据库的其他版本。
  新php_oci8_11g.dll作为php_oci8.dll 的补充。
  这两个库都只能开启其中一个。php_oci8.dll 使用 Oracle 10.2 客户端库。
  php_oci8_11g.dll 使用 Oracle 11 客户端库。
  以下函数已经能够支持windows
  checkdnsrr()
  dns_get_record()
  fnmatch()
  getmxrr()
  getopt()
  imagecolorclosesthwb()
  inet_ntop()
  inet_pton()
  link()
  linkinfo()
  mcrypt_create_iv()
  readlink()
  socket_create_pair() - 之前这个函数能在 Windows 下用,但是因为bug被PHP4.3.0屏蔽。
  stream_socket_pair()
  symlink()
  time_nanosleep()
  time_sleep_until()
  Other changes:
  其他改变:
  改良了 stat(), touch(), filemtime(), filesize() 和其他有关函数的可移植性。
  现在可以在 Windows 下使用 link() 函数建立硬连接(hard links),使用 symlink() 建立符号连接(symbolic links)。
  硬链接用于 Windows 2000,符号连接用于 Windows Vista.
  Windows版PHP现在公布了一组以PHP_WINDOWS_*为前缀的新常量。
  有关的常量列表和用途请查阅 Predefined Constants(预定义常量)。
  Warning
  警告
  已放弃对ISAPI模块的支持,可使用改进过的FastCGI SAPI模块代替。
  提示: 现已为windows上的PHP创建全新的网站, 含各版本的下载、发布候选、快照。
  网址:http://windows.php.net/
  五、SAPI 模块中的改变
  一个名为litespeed的SAPI模块已经能够使用
  FastCGI现在总是开启的并不能被关闭。请查看 sapi/cgi/CHANGES 获得更多的信息。
  CGI SAPI增加一个新选项 -T,用于测试脚本的重复执行时间。
  CGI/FastCGI 现在支持.htaccess 风格的、用户定义的 php.ini文件
  默认禁用dl()函数,并且仅能够在CLI, CGI 和embed SAPIs中使用。
  六、PHP 5.3.x 中不建议使用的功能
  PHP 5.3.0 引入了两个新的错误级别:E_DEPRECATED和E_USER_DEPRECATED。
  E_DEPRECATED表明不建议使用的函数或功能。
  E_USER_DEPRECATED表明用户代码中不建议使用的功能,类似于E_USER_ERROR和E_USER_WARNING。
  以下是不建议使用的INI选项。会导致启动时抛出E_DEPRECATED错误。
  define_syslog_variables
  register_globals
  register_long_arrays
  safe_mode
  magic_quotes_gpc
  magic_quotes_runtime
  magic_quotes_sybase
  不建议用'#'在INI文件作注释
  不建议使用的函数:
  call_user_method() (使用 call_user_func() 代替)
  call_user_method_array() (使用 call_user_func_array() 代替)
  define_syslog_variables()
  dl()
  ereg() (使用preg_match() 代替)
  ereg_replace() (使用 preg_replace() 代替)
  eregi() (使用 preg_match() 结合 ‘i’ 修饰符以代替)
  eregi_replace() (使用 preg_replace() 结合 ‘i’ 修饰符以代替)
  set_magic_quotes_runtime() 和它的别名 magic_quotes_runtime()
  session_register() (使用 $_SESSION 超全局变量(superglobal)代替)
  session_unregister() (使用 $_SESSION 超全局变量(superglobal)代替)
  session_is_registered() (使用 $_SESSION 超全局变量(superglobal)代替)
  set_socket_blocking() (使用 stream_set_blocking() 代替)
  split() (使用 preg_split()代替)
  spliti() (使用 preg_split()以修饰符'i'代替)
  sql_regcase()
  mysql_db_query() (使用 mysql_select_db() 和 mysql_query() 代替)
  mysql_escape_string() (使用 mysql_real_escape_string() 代替)
  使用LC_*系列常量代替字符串,来设置locale category names
  The is_dst parameter to mktime(). Use the new timezone handling functions instead.
  mktime()的参数is_dst 。用新的timezone处理函数代替。
  不建议使用的功能:
  不推荐将new的返回值为引用。
  不推荐Call-time pass-by-reference 即不推荐func(&$param);
  不推荐使用{}访问string offsets。请使用 [] 代替。
  七、PHP 5.3.x 恢复正常使用的功能
  由于is_a()的普遍需求,使用它不再产生 E_STRICT 错误。
  八、新的参数
  在 PHP 5.3 中部分函数提供了新的可选参数:
  PHP 核心:
  clearstatcache() – 增加了 clear_realpath_cache 和 filename .
  copy() – 增加数据流环境参数(stream context parameter), context .
  fgetcsv() – 增加 escape .
  ini_get_all() – 增加 details .
  mail() 函数现在支持记录发送的邮件。(仅对通过该函数发送的邮件有效)
  nl2br() – 增加 is_xhtml .
  parse_ini_file() – 增加 scanner_mode .
  round() – 增加 mode .(PS:现在不光是四舍五入这一种形式了)
  stream_context_create() – 增加 params .
  strstr() 和 stristr() – 增加 before_needle .(PS:可以取指定字符前面的部分了)
  json:
  json_encode() – 增加 options .
  json_decode() – 增加 depth .
  Streams:
  stream_select(), stream_set_blocking(), stream_set_timeout() 和 stream_set_write_buffer() 现在可以利用用户空间的数据流封装(user-space stream wrappers)。
  sybase_ct:
  sybase_connect() – 增加 new .
  PHP 5.3.0中的新方法:
  PHP 核心:
  Exception::__construct() - 增加 previous.
  九、新函数
  PHP 核心:
  array_replace() – 替换传入的数组为一个数组。
  array_replace_recursive() – 递归的替换数组中的元素。
  class_alias() – 为用户定义的类建立一个别名。
  forward_static_call() – 在方法内(method context)执行用户函数。
  forward_static_call_array() – 在方法内(method context)执行用户函数,参数使用数组。
  gc_collect_cycles() – 强制收集已存在的垃圾回收数据(garbage cycles)。
  gc_disable() – 关闭回收引用收集器(the circular reference collector)。
  gc_enable() – 激活回收引用收集器(the circular reference collector)。
  gc_enabled() – 返回回收引用收集器(the circular reference collector)的状态。
  get_called_class() – 返回执行静态方法的类名。
  gethostname() – 返回本地服务器当前的主机名(host name)。
  header_remove() – 删除之前使用 header() 函数设置的 HTTP 头信息(HTTP header)。
  lcfirst() – 将字符串第一个字符转换成小写。
  parse_ini_string() – 解析配置字符串。
  quoted_printable_encode() – 将 8 bit 字符串转换成 quoted-printable 编码的字符串。(PS:quoted-printable 编码是 MIME 邮件中常用的编码格式)
  str_getcsv() – 将 CSV 字符串解析成数组。
  stream_context_set_default() – 设置默认的 stream context(数据流环境?或者叫数据流资源?)。
  stream_supports_lock() – 如果数据流支持锁则返回 TRUE。
  stream_context_get_params() – 从 stream context 中取回参数。
  streamWrapper::stream_cast() – 取回基本的 stream resource(数据流资源)。
  streamWrapper::stream_set_option() – 修改 stream(数据流)选项。
  Date/Time:
  date_add() – 将一个 DateTime 对象增加某个数量的天、月、年、小时、分钟或者秒。
  date_create_from_format() – 返回给定的格式的新 DateTime 对象。
  date_diff() – 返回两个 DateTime 对象的差。
  date_get_last_errors() – 返回最近一次日期/时间操作产生的警告或者错误。
  date_parse_from_format() – 获得给定日期的信息。
  date_sub() – 将一个 DateTime 对象减去某个数量的天、月、年、小时、分钟或者秒。
  timezone_version_get() – 返回时区数据库(timezonedb)的版本。
  GMP:
  gmp_testbit() – Tests whether a bit is set.
  Hash:
  hash_copy() – Copy hashing context.
  IMAP:
  imap_gc() – Clears IMAP cache.
  imap_utf8_to_mutf7() – Encode a UTF-8 string to modified UTF-7.
  imap_mutf7_to_utf8() – Decode a modified UTF-7 string to UTF-8.
  JSON:
  json_last_error() – Returns the last JSON error that occurred.
  MySQL Improved:
  mysqli_fetch_all() – Fetches all result rows as an associative array, a numeric array, or both.
  mysqli_get_connection_stats() – Returns statistics about the client connection.
  mysqli_poll() – Poll connections.
  mysqli_reap_async_query() – Get result from async query.
  OpenSSL:
  openssl_random_pseudo_bytes() – Returns a string of the given length specified, filled with pseudo-random bytes.
  PCNTL:
  pcntl_signal_dispatch() – Calls signal handlers for pending signals.
  pcntl_sigprocmask() – Sets and retrieves blocked signals.
  pcntl_sigtimedwait() – Wait for signals with a timeout.
  pcntl_sigwaitinfo() – Wait for signals.
  PCRE:
  preg_filter() – Perform a regular expression search and replace, reutrning only results which matched the pattern.
  Semaphore:
  msg_queue_exists() – Check whether a message queue exists.
  shm_has_var() – Checks whether a specific key exists inside a shared memory segment.
  以下函数在所有操作系统中都能运行
  acosh()
  asinh()
  atanh()
  expm1()
  log1p()
  十、新的 stream wrappers
  glob://
  phar://
  十一、新的类常量
  PDO_FIREBIRD:
  PDO::FB_ATTR_DATE_FORMAT - 日期格式
  PDO::FB_ATTR_TIME_FORMAT - 时间格式
  PDO::FB_ATTR_TIMESTAMP_FORMAT - timestamps格式.
  十二、新的类方法
  Date/Time:
  DateTime::add() - 在一个DateTime类型上增加指定的日、月、年、小时、分、秒
  DateTime::createFromFormat() - 根据指定的格式返回新DateTime
  DateTime::diff() - 返回两个DateTime的差
  DateTime::getLastErrors() - 返回最近一次date/time操作的警告或错误信息
  DateTime::sub() - Subtracts an amount of days, months, years, hours, minutes and seconds from a DateTime object.
  Exception:
  Exception::getPrevious() - 获取上次错误信息
  DOM:
  DOMNode::getLineNo() - 获取指定节点的行号
  PDO_FIREBIRD:
  PDO::setAttribute() - 设置属性
  Reflection:
  ReflectionClass::getNamespaceName() - 返回类的命名空间名称
  ReflectionClass::getShortName() - 返回类的短名(即不包含namespace部分)
  ReflectionClass::inNamespace() - 返回namespace中是否定义了该类
  ReflectionFunction::getNamespaceName() - 返回已定义该函数的namespace的名称
  ReflectionFunction::getShortName() - 返回函数的短名(不包含namespace部分)
  ReflectionFunction::inNamespace() - 返回函数是否已在namespace中定义
  ReflectionProperty::setAccessible() - 设置非public属性是否能被访问
  SPL:
  SplObjectStorage::addAll() - Add all elements from another SplObjectStorage object.
  SplObjectStorage::removeAll() - Remove all elements from another SplObjectStorage object.
  XSL:
  XSLTProcessor::setProfiling() - Sets the profiling output file.
  十三、新扩展
  PHP 5.3.0默认已添加以下扩展
  Enchant - An abstraction layer above various spelling libraries
  Fileinfo - An improved and more solid replacement, featuring full BC, for the Mimetype extension, which has been removed.
  INTL - Internationalization extension. INTL is a wrapper around the » ICU library.
  Phar - Implementation of PHP-Archive files.
  SQLite3 - 支持SQLite3
  mysqlnd is a new core library shipped with PHP. It is a PHP-specific replacement for libmysql.
  mysqlnd will be used to build the mysql, mysqli and PDO_MySQL extensions if libmysql isnt found on the system.
  It may also be used instead of libmysql even when libmysql is present. mysqlnd is recommended for all PHP installations for performance reasons.
  十四、移除的扩展
  以下扩展被移到PECL并不再作为PHP发行版的一部分
  These extensions have been moved to PECL and are no longer part of the PHP distribution.
  The PECL package versions of these extensions will be created according to user demand.
  这些扩展的PECL包版本将以用户的需要来创建
  dbase - 不再保留
  fbsql - 不再保留
  fdf - 保留
  ming - 保留
  msql - 不再保留
  ncurses - 保留
  sybase - 不再继续,请使用sybase_ct扩展来代替
  mhash - 不再继续,请使用hash扩展来代替,hash完全兼容mhash;使用旧方法将能继续运行。
  十五、扩展中的其他变化
  在配置时以下扩展将无法被禁用
  PCRE
  Reflection
  SPL
  扩展行为的变化以及新功能
  Date and Time - The TZ environment variable is no longer used to guess the timezone
  cURL - cURL支持SSH
  Network - dns_check_record()返回额外的键"entries", 包含域名的TXT记录.
  Hash - 支持SHA-224 和 salsa hash algorithms
  mbstring - 支持 CP850编码
  OCI8 - A call to oci_close() on a persistent connection, or a variable referencing a persistent connection going out of scope,
  will now roll back any uncommitted transaction. To avoid unexpected behavior, explicitly issue a commit or roll back as needed.
  The old behavior can be enabled with the INI directive oci8.old_oci_close_semantics.
  Database Resident Connection Pooling (DRCP) and Fast Application Notification (FAN) are now supported.
  Oracle External Authentication is now supported (except on Windows).
  The oci_bind_by_name() function now supports SQLT_AFC (aka the CHAR datatype).
  OpenSSL - OpenSSL digest and cipher functions are now supported. It is also now possible to access the internal values of DSA, RSA and DH keys.
  Session - Sessions will no longer store session-files in "/tmp" when open_basedir restrictions apply, unless "/tmp" is explicitly added to the list of allowed paths.
  SOAP Now supports sending user supplied HTTP headers.
  MySQLi 在主机名前添加"p:"将支持持久连接
  Image Processing and GD The "JPG Support" index returned from gd_info() has been renamed to "JPEG Support".
  十六、新的类
  Date/Time:
  DateInterval
  DatePeriod
  Phar:
  Phar
  PharData
  PharException
  PharFileInfo
  SPL:
  FilesystemIterator
  GlobIterator
  MultipleIterator
  RecursiveTreeIterator
  SplDoublyLinkedList
  SplFixedArray
  SplHeap
  SplMaxHeap
  SplMinHeap
  SplPriorityQueue
  SplQueue
  SplStack
  十七、新的全局常量
  PHP Core:
  __DIR__
  __NAMESPACE__
  E_DEPRECATED
  E_USER_DEPRECATED
  INI_SCANNER_NORMAL
  INI_SCANNER_RAW
  PHP_MAXPATHLEN
  PHP_WINDOWS_NT_DOMAIN_CONTROLLER
  PHP_WINDOWS_NT_SERVER
  PHP_WINDOWS_NT_WORKSTATION
  PHP_WINDOWS_VERSION_BUILD
  PHP_WINDOWS_VERSION_MAJOR
  PHP_WINDOWS_VERSION_MINOR
  PHP_WINDOWS_VERSION_PLATFORM
  PHP_WINDOWS_VERSION_PRODUCTTYPE
  PHP_WINDOWS_VERSION_SP_MAJOR
  PHP_WINDOWS_VERSION_SP_MINOR
  PHP_WINDOWS_VERSION_SUITEMASK
  cURL:
  CURLOPT_PROGRESSFUNCTION
  GD:
  IMG_FILTER_PIXELATE
  JSON:
  JSON_ERROR_CTRL_CHAR
  JSON_ERROR_DEPTH
  JSON_ERROR_NONE
  JSON_ERROR_STATE_MISMATCH
  JSON_ERROR_SYNTAX
  JSON_FORCE_OBJECT
  JSON_HEX_TAG
  JSON_HEX_AMP
  JSON_HEX_APOS
  JSON_HEX_QUOT
  LDAP:
  LDAP_OPT_NETWORK_TIMEOUT
  libxml:
  LIBXML_LOADED_VERSION
  PCRE:
  PREG_BAD_UTF8_OFFSET_ERROR
  PCNTL:
  BUS_ADRALN
  BUS_ADRERR
  BUS_OBJERR
  CLD_CONTIUNED
  CLD_DUMPED
  CLD_EXITED
  CLD_KILLED
  CLD_STOPPED
  CLD_TRAPPED
  FPE_FLTDIV
  FPE_FLTINV
  FPE_FLTOVF
  FPE_FLTRES
  FPE_FLTSUB
  FPE_FLTUND
  FPE_INTDIV
  FPE_INTOVF
  ILL_BADSTK
  ILL_COPROC
  ILL_ILLADR
  ILL_ILLOPC
  ILL_ILLOPN
  ILL_ILLTRP
  ILL_PRVOPC
  ILL_PRVREG
  POLL_ERR
  POLL_HUP
  POLL_IN
  POLL_MSG
  POLL_OUT
  POLL_PRI
  SEGV_ACCERR
  SEGV_MAPERR
  SI_ASYNCIO
  SI_KERNEL
  SI_MESGQ
  SI_NOINFO
  SI_QUEUE
  SI_SIGIO
  SI_TIMER
  SI_TKILL
  SI_USER
  SIG_BLOCK
  SIG_SETMASK
  SIG_UNBLOCK
  TRAP_BRKPT
  TRAP_TRACE
  十八、INI文件处理的变化
  PHP 5.3.0显著改进了INI文件解析的性能,并且添加若干新语法功能
  The standard php.ini files have been re-organized and renamed. php.ini-development contains settings recommded for use in development environments. php.ini-production contains settings recommended for use in production environments.
  There is now support for two special sections: [PATH=/opt/httpd/www.example.com/] and [HOST=www.example.com]. Directives set in these sections cannot be overridden by user-defined INI files or at runtime. More information about these sections can be found here.
  zend_extension_debug and zend_extension_ts have been removed. Use the zend_extension directive to load all Zend Extensions.
  zend.ze1_compatibility_mode has been removed. If this INI directive is set to On, an E_ERROR error is emitted at startup.
  It is now possible to use the full path to load modules using the "extension" directive.
  "ini-variables" can now be used almost anywhere in a php.ini file.
  Runtime tightening of open_basedir restrictions is now possible.
  It is now possible to use alphanumeric or variable indices in INI option arrays.
  get_cfg_var() is now able to return "array" INI options.
  A new directive, mail.add_x_header, has been added.
  user_ini.filename is new
  user_ini.cache_ttl is also new
  exit_on_timeout is new too
  open_basedir is now PHP_INI_ALL
  The following new ini directives have been added:
  user_ini.filename and user_ini.cache_ttl for the new .htaccess-style user INI file mechanism.
  Added mbstring.http_output_conv_mimetype. This directive specifies the regex pattern of content types for which mb_output_handler() is activated.
  Added request_order. Allows controlling which external variables will be available in $_REQUEST.
  The following ini directives have new default values:
  session.use_only_cookies is now set to "1" (enabled) by default.
  oci8.default_prefetch has changed from "10" to "100".
  十九、其他变化
  SplFileInfo::getpathinfo() 返回path name信息
  SplObjectStorage now has ArrayAccess support. It is now also possible to store associative information with objects in SplObjectStorage.
  In the GD extension, there is now pixelation support available through the imagefilter() function.
  var_dump() 输出将包含私有属性
  session_start() 失败返回FALSE
  property_exists() now checks the existence of a property independent of accessibility (like method_exists()).
  Stream wrappers can now be used by include_path.
  The initial parameter for array_reduce() can now be of any type.
  The directory functions opendir(), scandir(), and dir() now use the default stream context if no explicit context is passed.
  crypt() now has Blowfish and extended DES support, and crypt() features are now 100% portable. PHP has its own internal crypt implementation which drops into place when support for crypt or crypt_r is not found.
  getopt() now accepts "long options" on all platforms. Optional values and = as a separator for short options are now supported.
  fopen()有了新的模式选项(n), which passes O_NONBLOCK to the underlying open() system call. 这个模式已经能在windows上使用。
  getimagesize() 支持icon文件(.ico).
  mhash扩展移到PECL, 编译时使用--with-mhash选项,hash扩展将兼容mhash。注意:hash扩展开启兼容mhash,无需mhash库的支持。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-653488-1-1.html 上篇帖子: 设置php 下篇帖子: php 生成sitemap xml文件(网站地图)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表