其他修改


  • CURL模組:禁止停用CURLOPT_SAFE_UPLOAD選項,透過curl上傳檔案必須使用curl_file/CURLFILE介面。

  • DATE模組:mktime()和gmmktime()函數移除了$is_dst parameter參數。

  • DBA模組:dba_delete() 如果在inifile裡面沒有找到key的時候會回傳false。
  • GMP模組:必須用libgmp 4.2版本以上。 gmp_setbit() and gmp_clrbit()如果傳入的index為負數的話,會回傳false。
  • Intl模組:移除了別名函數datefmt_set_timezone_id() 和IntlDateFormatter::setTimeZoneID(),用datefmt_set_timezone() 和IntlDateFormatter::setTimeZone()
  • libxml模組:ibxml 2.9. 0引入的LIBXML_BIGLINES 選項,並在錯誤報告中增加了行號> 16-bit的支援。
  • Mcrypt模組:.移除了mcrypt_generic_end() mcrypt_ecb(), mcrypt_cbc(), mcrypt_cfb() 和mcrypt_ofb()
  • #Opcache:移除了opcache.load_comrypt_ofb()
  • Opcache:移除了opcache.load_comments配置項,現在註解載入總是被啟動的。
  • OpenSSL:移除了"rsa_key_size"、"CN_match" 、"SNI_server_name" 選項。
  • PCRE:移除了 /e (PREG_REPLACE_EVAL) 修飾符的支持,使用preg_replace_callback()來代替。
  • PDO_pgsql:刪除了PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT選項。
  • Standard:刪除了setlocale()函數裡面對字串型別的支持,使用LC_*常數。刪除了set_magic_quotes_runtime() magic_quotes_runtime().
  • JSON:json_decode()會拒絕與RFC 7159不相容的數字格式。 json_decode第一個參數是空值的時候會回傳json語法錯誤。

  • Stream:刪除別名函數set_socket_blocking()
  • #XSL:刪除xsl.security_prefs 選項。
      session
    • session_start()可以接受所有的INI設置,可以用數組的方式傳入,例如:['cache_limiter'=>'private']
    • save handler接受validate_sid(), update_timestamp() ,可用來檢查sid是否存在,更新session資料的時間戳記。
    • 增加了SessionUpdateTimestampHandlerInterface,而這個介面裡面定義了validateSid(), updateTimestamp()方法。


      session.lazy_write(default=On) 配置項目可以允許只有session資料有變化時才寫入資料。

PHP 7 Session 選項

PHP 7 session_start( )函數可以接收一個陣列作為參數,可以覆寫php.ini中session的配置項。

這個特性也引入了一個新的php.ini設定(session.lazy_write),預設為 true,表示session資料只在發生變化時才寫入。

###除了常規的會話配置指示項, 還可以在此數組中包含 read_and_close 選項。如果將此選項的值設為 TRUE, 那麼會話檔案會在讀取完畢之後馬上關閉, 因此,可以在會話資料沒有變動的時候,避免不必要的檔案鎖定。 ###

實例

把cache_limiter設定為私有的,同時在閱讀完session後立即關閉。

<?php
session_start(&#91;
   'cache_limiter' => 'private',
   'read_and_close' => true,
]);
?>