久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      詳細(xì)介紹關(guān)于php的ini文件相關(guān)操作函數(shù)

      在小公司,特別是創(chuàng)業(yè)型公司,整個(gè)服務(wù)器的搭建一般也是我們PHP開(kāi)發(fā)工程師的職責(zé)之一。其中,最主要的一項(xiàng)就是要配置好服務(wù)器的php.ini文件。一些參數(shù)會(huì)對(duì)服務(wù)器的性能產(chǎn)生深遠(yuǎn)的影響,而且也有些參數(shù)是可以在PHP運(yùn)行時(shí)動(dòng)態(tài)指定和獲取的。今天,我們就來(lái)學(xué)習(xí)一些和php.ini文件有關(guān)的操作函數(shù)。

      詳細(xì)介紹關(guān)于php的ini文件相關(guān)操作函數(shù)

      動(dòng)態(tài)設(shè)置ini文件的配置參數(shù)

      這個(gè)函數(shù)相信大家不會(huì)陌生,基本上做過(guò) PHP 開(kāi)發(fā)的都會(huì)使用過(guò)。但是,有些參數(shù)是無(wú)法修改的,這個(gè)你知道嗎?

      ini_set('allow_url_fopen', 0); echo ini_get('allow_url_fopen'), PHP_EOL; // 1 ,無(wú)法修改,PHP_INI_SYSTEM  ini_set('memory_limit', -1); echo ini_get('memory_limit'), PHP_EOL; // -1,可以修改,PHP_INI_ALL

      請(qǐng)注意看注釋?zhuān)谝粭l注釋中寫(xiě)了 ,PHP_INI_SYSTEM ,并且這個(gè)參數(shù)無(wú)法修改。沒(méi)錯(cuò),相信聰明的你已經(jīng)看出來(lái)了,這些參數(shù)是有對(duì)應(yīng)的類(lèi)型的。PHP_INI_SYSTEM 的意思就是只能在 php.ini 或者 httpd.conf 中進(jìn)行修改,無(wú)法在語(yǔ)言動(dòng)態(tài)運(yùn)行時(shí)修改。

      不同的 php.ini 配置參數(shù)對(duì)應(yīng)有四種類(lèi)型:

      • PHP_INI_USER:可在用戶腳本(例如 ini_set())或 Windows 注冊(cè)表(自 PHP 5.3 起)以及 .user.ini 中設(shè)定

      • PHP_INI_PERDIR:可在 php.ini,.htaccess 或 httpd.conf 中設(shè)定

      • PHP_INI_SYSTEM:可在 php.ini 或 httpd.conf 中設(shè)定

      • PHP_INI_ALL:可在任何地方設(shè)定

      也就是說(shuō),使用 ini_set() 我們可以設(shè)定類(lèi)型為 PHP_INI_USER 和 PHP_INI_ALL 類(lèi)型的參數(shù),而其它兩種只能在 php.ini 或其他配置文件中設(shè)置修改。具體的配置參數(shù)對(duì)應(yīng)的類(lèi)型請(qǐng)參考 PHP 相關(guān)文檔。

      https://www.php.net/manual/zh/ini.list.php

      獲取ini文件中的配置信息

      當(dāng)然,讀取 php.ini 文件中的配置信息就沒(méi)有什么限制了。直接就可以讀取,我們可以使用兩個(gè)函數(shù)來(lái)進(jìn)行讀取,它們是:get_cfg_var() 和 ini_get() 。另外,還有一個(gè)可以獲取數(shù)組集合形式的配置信息的函數(shù) ini_get_all() 。我們一個(gè)一個(gè)來(lái)看。

      get_cfg_var() 和 ini_get()

      都是讀取單個(gè)配置參數(shù)信息。

      echo get_cfg_var('error_reporting'), PHP_EOL; // 32759 echo ini_get('error_reporting'), PHP_EOL; // 32759  echo get_cfg_var('request_order'), PHP_EOL; // GP echo ini_get('request_order'), PHP_EOL; // GP  // php.ini A=TEST_A echo get_cfg_var('A'), PHP_EOL; // TEST_A echo ini_get('A'), PHP_EOL; //

      上面兩條不用多解釋?zhuān)覀冃枰⒁獾降氖?,最后一條。我們?cè)?php.ini 文件中定義了一個(gè)自定義的配置參數(shù) A ??梢钥吹剑琯et_cfg_var() 可以正常獲取到這條信息,但 ini_get() 無(wú)法獲取。我們?cè)倏戳硗庖粋€(gè)例子。

      ini_set('error_reporting', E_WARNING); echo get_cfg_var('error_reporting'), PHP_EOL; // 32759,只返回.ini的內(nèi)容 echo ini_get('error_reporting'), PHP_EOL; // 2,返回當(dāng)前配置運(yùn)行時(shí)的狀態(tài)

      使用 ini_set() 動(dòng)態(tài)設(shè)置了 error_reporting 參數(shù)后,get_cfg_var() 返回是 ini_set() 設(shè)置的值,而 ini_get() 獲取的依然是 php.ini 文件里面配置的值。

      從上面兩個(gè)例子可以看出這兩個(gè)函數(shù)的區(qū)別:

      • get_cfg_var(),可以獲取自定義的配置參數(shù)值,但只以 php.ini 文件為準(zhǔn),無(wú)法獲得動(dòng)態(tài)修改的參數(shù)值

      • ini_get(),無(wú)法獲取自定義的配置參數(shù)值,以當(dāng)前的動(dòng)態(tài)腳本運(yùn)行時(shí)的配置為準(zhǔn),也就是能夠獲取到 ini_set() 修改后的參數(shù)值

      ini_get_all()

      它獲取的是一組數(shù)據(jù),比如我們安裝的一些擴(kuò)展 Swoole 、 xDebug 或者 mysqlnd 這類(lèi)的配置信息。

      print_r(ini_get_all('swoole')); echo PHP_EOL; // Array // ( //     [swoole.display_errors] => Array //         ( //             [global_value] => On //             [local_value] => On //             [access] => 7 //         )  //     [swoole.enable_coroutine] => Array //         ( //             [global_value] => On //             [local_value] => On //             [access] => 7 //         )  //     [swoole.enable_library] => Array //         ( //             [global_value] => On //             [local_value] => On //             [access] => 7 //         )  //     [swoole.enable_preemptive_scheduler] => Array //         ( //             [global_value] => Off //             [local_value] => Off //             [access] => 7 //         )  //     [swoole.unixsock_buffer_size] => Array //         ( //             [global_value] => 262144 //             [local_value] => 262144 //             [access] => 7 //         )  //     [swoole.use_shortname] => Array //         ( //             [global_value] =>  //             [local_value] =>  //             [access] => 4 //         )  // )

      可以看出,我們針對(duì) Swoole 所作的所有配置信息都以數(shù)組形式返回了。

      還原配置信息

      當(dāng)我們使用了 ini_set() 動(dòng)態(tài)設(shè)置了參數(shù)信息后,想還原為 php.ini 文件中的默認(rèn)配置的話,直接使用一個(gè) ini_restore() 函數(shù)就可以了。

      ini_restore('error_reporting'); echo ini_get('error_reporting'), PHP_EOL; // 32759

      依然是沿用上面的代碼, error_reporting 已經(jīng)被我們修改為了 2 ,這時(shí),我們直接使用 ini_restore() 進(jìn)行了還原,再使用 ini_get() 就可以看到 error_reporting 參數(shù)還原回了 php.ini 文件中定義的原始值。

      獲取當(dāng)前加載的配置文件路徑

      當(dāng)你接手一臺(tái)服務(wù)器的時(shí)候,往往第一步就是找到它的相關(guān)應(yīng)用配置文件,比如 mysql 的 my.ini 或者 nginx 的 conf 相關(guān)配置文件路徑,而 PHP 中我們第一步就是要找到 php.ini 文件在哪里。

      echo php_ini_loaded_file(), PHP_EOL; // /usr/local/etc/php/7.3/php.ini  echo php_ini_scanned_files(), PHP_EOL;

      我們直接使用 php_ini_loaded_file() 就可以方便的獲取到當(dāng)前運(yùn)行的腳本環(huán)境中加載的 php.ini 文件的路徑。而 php_ini_scanned_files() 函數(shù)則是會(huì)以逗號(hào)分隔的形式返回所有可以掃描 php.ini 文件的路徑。

      其實(shí)這兩個(gè)參數(shù)在 phpinfo() 中都都有所體現(xiàn),但很多時(shí)候我們并不能直接在生產(chǎn)環(huán)境中去使用 phpinfo() 。相對(duì)于這兩個(gè)函數(shù)或 phpinfo() 來(lái)說(shuō),更好的方案是直接在命令行查找 php.ini 文件的位置。

      php --ini # Configuration File (php.ini) Path: /usr/local/etc/php/7.3 # Loaded Configuration File:         /usr/local/etc/php/7.3/php.ini # Scan for additional .ini files in: /usr/local/etc/php/7.3/conf.d # Additional .ini files parsed:      /usr/local/etc/php/7.3/conf.d/ext-opcache.ini  php -i | grep "Configuration" # Configuration File (php.ini) Path => /usr/local/etc/php/7.3 # Loaded Configuration File => /usr/local/etc/php/7.3/php.ini # Configuration

      phpinfo()

      關(guān)于 phpinfo() ,我們不用解釋太多,里面的內(nèi)容都有什么應(yīng)該是學(xué)習(xí)使用 PHP 的開(kāi)發(fā)人員的必修課。在這里,我們只是介紹一下 phpinfo() 這個(gè)函數(shù)的參數(shù)。沒(méi)錯(cuò),它是有參數(shù)的,可以只顯示一部分的信息而不是全部都顯示出來(lái)。

      • INFO_GENERAL:配置的命令行、 php.ini 的文件位置、建立的時(shí)間、Web 服務(wù)器、系統(tǒng)及

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)