php操作ini
1. 如何修改php.ini
1、post_max_size = 8M (表單提交的最大限制,此項不是限制上傳單個文件的大小,而是針對整個表單提交的數據進行限制。)
2、upload_max_filesize = 2M (上傳的單個文件的最大限制)
保證 post_max_size >= upload_max_filesize 即可,也就是前者不小於後者。
修改之後一定要重啟 Web 服務。
2. php編輯配置文件ini格式文件用什麼命令
function put_ini_file ( $file , $array , $i = 0 ){
$str = "" ;
foreach ( $array as $k => $v ){
if ( is_array ( $v )){
$str .= str_repeat ( " " , $i * 2 ). "[ $k ]" . PHP_EOL ;
$str .= put_ini_file ( "" , $v , $i + 1 );
}else
$str .= str_repeat ( " " , $i * 2 ). " $k = $v " . PHP_EOL ;
}
if( $file )
return file_put_contents ( $file , $str );
else
return $str ;
}
3. php. ini在那怎麼打開
如果是在windows系統配置php 一般可放在php.exe中目錄中,如果沒有,可將php.ini-development (開發配置)或 php.ini-proction (生產配置) 改名為php.ini 再適當修改。如果改了沒起作用,可重啟iis或apache。一直不生效,可嘗試在web目錄新建一個i.php
<?php
phpinfo();
輸入以上內容並保存,在web站點訪問地址打開,可以查看到php的相關配置
我這里表示 php.ini 從D:Program FilesPHP-7.2php.ini 這個位置載入的,如果是從C:Windows目錄載入的,刪掉windows目錄下的php.ini即可(不推薦配置在windows目錄,這樣就不方便多版本共存了)
如果是linux系列的伺服器,一般在/etc/目錄內,也可以使用phpinfo輸出信息來查看載入的位置
編輯php.ini用普通的文本文件編輯器即可 (不要使用word等格式文檔)
4. linux 怎樣修改php.ini
在命令提示符下進入php.ini文件所在的目錄,一般都是/etc目錄,如果要進入的話就用命令cd /etc 回車。
可以用dir php.ini來顯示確認一下該文件在不在你的當前目錄。
如果在,就用命令vi php.ini或vim php.ini來打開並進行編輯。這里需要注意的是剛打開時屏幕處於不可編輯狀態,需要按「i」鍵後才能編輯。編輯完後需要保存退出時的操作為,按ESC鍵然後輸入「:wq! 」保存文件,並退出vi編輯器。
5. php讀取ini配置文件屬性
ini的內容格式如下,請根據自己的INI,格式修改下段程序.
autostart = false
font_size = 12
font_color = red
===================
function get_ini_file($file_name = "demo.ini"){
$str=file_get_contents($file_name);//讀取ini文件存到一個字元串中.
$ini_list = explode("\r\n",$str);//按換行拆開,放到數組中.
$ini_items = array();
foreach($ini_list as $item){
$one_item = explode("=",$item);
if(isset($one_item[0])&&isset($one_item[1])) $ini_items[trim($one_item[0])] = trim($one_item[1]); //存成key=>value的形式.
}
return $ini_items;
}
function get_ini_item($ini_items = null,$item_name = ''){//獲得INI條目的值.
if(empty($ini_items)) return "";
else return $ini_items[$item_name];
}
$ini_items = get_ini_file("demo.ini");
echo get_ini_item($ini_items,'font_size'); //輸出獲得的值.
6. php如何修改ini文件
php中修改php配置文件(php.ini)的函數主要有四個函數:ini_get、ini_set、ini_get_all、ini_restore。其中ini_set和ini_get比較常用,下面分別做介紹。
(1)ini_get()
用來獲取配置文件的選項值.
這個函數相信很多人都使過,就是獲取配置文件中某一個選項的值,如果是true值就返回1,如果是false值就返回0,字元串就返回字元串。
php手冊中的例子:
<?php
echo 'post_max_size = ' . ini_get('post_max_size') . "\n";//最多能提交的文件大小
echo 'post_max_size+1 = ' . (ini_get('post_max_size')+1) . "\n";
echo 'display_errors = ' . ini_get('display_errors') . "\n"; //顯示錯誤是否打開
echo 'register_globals = ' . ini_get('register_globals') . "\n";//全局變數是否打開
?>
輸出:
display_errors = 1
register_globals = 0
post_max_size = 8M
post_max_size+1 = 9
這個函數主要是為了獲取配置文件,可以方便很多操作。比如想操作字元串過濾,但是又不清楚magic_quotes_gpc有沒有打開,所以就可以這樣寫一個函數:
function stringFilter($str)
{
if (ini_get('magic_quotes_gpc)') {
return $str;
} else {
return addslashes($str);
}
}
當然,如果無法知道的全局變數是否打開,也可以定製這樣的函數:
function getGetVar($var)
{
if (ini_set('register_gobals')) {
return $var;
} else {
return $_GET['var'];
}
}
當然,可以做很多用途,自己慢慢體會。
(2)ini_set函數
設置php.ini中的某些變數值.
這個函數是設置選項中的值,在執行函數後生效,腳本結束的時候,這個設置也失效。不是所有的選項都能被改函數設置的。具體那些值能夠設置,可以查看手冊中的列表。
就是能夠設置php.ini中的選項值比如,display_error選項關閉了,但是要顯示程序中的錯誤信息,方便調試程序,那麼就可以使用這個函數:
ini_set("display_errors", "On");
那麼在這個頁面的程序都會顯示錯誤信息了,而且還可以使用error_reporting來設置顯示的錯誤信息級別。
如果需要增加腳本執行時間,那麼可以設置:
ini_set("max_execution_time", "180");
那麼腳本執行時間就由默認的30秒變為180秒,當然,你也可以使用set_time_limit()來設置。
其實把ini_set和ini_get結合使的話,非常好。比如想在配置文件里添加自己的包含文件路徑,但是有沒有許可權更改php.ini,那麼可以結合兩個函數:
ini_set('include_path',ini_get('include_path').':/your_include_dir:');
(3)ini_get_all
獲取所有的設置選項變數
把所有選項值以數組的形式返回,方便當phpinfo()無法使用的時候來使用。
手冊例子:
<?php
$inis = ini_get_all();
print_r($inis);
?>
部分輸出值:
Array
(
[allow_call_time_pass_reference] => Array
(
[global_value] => 1
[local_value] => 1
[access] => 6
)
[allow_url_fopen] => Array
(
[global_value] => 1
[local_value] => 1
[access] => 7
)
...
)
(4)ini_restore
恢復配置文件默認的值
就是恢復配置文件默認的值,當你使用ini_set設置後可以使用它來恢復。
資料來源:http://news.netshop168.com/cgal/1228249823.html
7. php如何讀取ini配置文件並按要求顯示
您看這樣符合您的要求嗎?
<?php
//設置ini文件名
$ini[0]='1.ini';
$ini[1]='2.ini';
//檢查第2個ini文件是否存在,如不存在,則創建之
if(!file_exists($ini[1])){
$file=fopen($ini[1],"a");
fwrite($file,'[config]');
fclose($file);
}
//獲取值
$values[0]=parse_ini_file($ini[0]);
$values[1]=parse_ini_file($ini[1]);
//獲取鍵
$keys[0]=array_keys($values[0]);
$keys[1]=array_keys($values[1]);
//寫入第2個ini文件
if(isset($_GET['section'])){
foreach($keys[0]as$key){
//如果在第1個ini文件中存在此鍵,
//而在第2個ini文件中不存在,則進行寫入
//這是為了避免寫入重復或多餘的鍵
if($_GET['section']===$keyAND!isset($values[1][$key])){
file_put_contents($ini[1]," $key=0",FILE_APPEND);
}
}
}
//重新獲取第2個ini文件的值
$values[1]=parse_ini_file($ini[1]);
//重新獲取第2個ini文件的鍵
$keys[1]=array_keys($values[1]);
//開始輸出為表格
echo'<tablestyle="border-collapse:collapse;border:1pxsolid#000000;">';
//遍歷所有鍵
foreach($keys[0]as$key){
//如果值為OK,而且在第二個ini文件中不存在,則顯示ok
if($values[0][$key]==='OK'AND!isset($values[1][$key])){
echo'<trstyle="border:1pxsolid#000000;">';
echo'<tdstyle="width:64px;border:1pxsolid#000000;">',$key,'</td>';
echo'<tdstyle="width:64px;border:1pxsolid#000000;"><ahref="?section=',$key,'"style="color:#000000;text-decoration:none;">ok</a></td>';
echo'</tr>';
}
//如果值為OK,而且在第二個ini文件中存在,則顯示no
elseif($values[0][$key]==='OK'ANDisset($values[1][$key])){
echo'<trstyle="border:1pxsolid#000000;">';
echo'<tdstyle="width:64px;border:1pxsolid#000000;">',$key,'</td>';
echo'<tdstyle="width:64px;border:1pxsolid#000000;">no</td>';
echo'</tr>';
}
}
echo'</table>';
//表格輸出完畢
//注銷所有變數
unset($ini,$file,$values,$keys,$key);
?>
PHP中,寫入文件必須要有寫入許可權的。但一般來說是沒問題的。如果報錯,就必須要配置相應的寫入許可權才行。
希望對您有幫助,謝謝!
8. PHP怎麼設置PHP.INI文件的參數
當然不是所有參數都可以動態設置,如果可以那麼安全就得不到保證。
比如short_tag_open這個屬性。
如果非要改也可以考慮設置apache 這個程序運行用戶的許可權,然後PHP就可以去讀寫php.ini這個文件了。
9. 怎麼修改php.ini文件里的配置
文本編輯打開文件、修改保存即可。
如果是WINDOWS伺服器,可以使用記事本修改。如果是UNIX伺服器,可以使用vi修改。
查看PHP.INI文件位置,可以使用phpinfo()函數
10. php怎麼寫ini配置項
//用法ini_file(文件名,ini節名,鍵名key,鍵值)
//查詢時鍵值留空或設為null,函數返回鍵值
//若無ini節名,則ini節名設為nullini節名不包含[]
//查詢
//echoini_file('abc.ini','sectionA','key1');
//輸出對應的鍵值如123ds
//添加或更改
/*
if(ini_file('abc.ini','sectionA','key1','bnmv')
echo"成功添加或修改";
else
echo"操作失敗";
*/
functionini_file($inifilename,$mode=null,$key,$value=null){
//傳入參數為null時的默認值
$inifilename=$inifilename==null?'Application.ini':$inifilename;
$key=$key==null?'user':$key;
if(!file_exists($inifilename))
returnnull;
//讀取
$confarr=parse_ini_file($inifilename,true);
$newini="";
if($mode!=null)
{
//節名不為空
if($value==null)
{return@$confarr[$mode][$key]==null?null:$confarr[$mode][$key];}
else
{$YNedit=@$confarr[$mode][$key]==$value?false:true;//若傳入的值和原來的一樣,則不更改
@$confarr[$mode][$key]=$value;
}
}
else
{//節名為空
if($value==null)
{return@$confarr[$key]==null?null:$confarr[$key];}
else
{$YNedit=@$confarr[$key]==$value?false:true;//若傳入的值和原來的一樣,則不更改
@$confarr[$key]==$value;
$newini=$newini.$key."=".$value." ";
}
}
if(!$YNedit)
returntrue;
//更改
$Mname=array_keys($confarr);
$jshu=0;
foreach($confarras$k=>$v)
{
if(!is_array($v))
{$newini=$newini.$Mname[$jshu]."=".$v." ";$jshu+=1;}
else
{$newini=$newini.'['.$Mname[$jshu]."] ";//節名
$jshu+=1;
$jieM=array_keys($v);
$jieS=0;
foreach($vas$k2=>$v2)
{$newini=$newini.$jieM[$jieS]."=".$v2." ";$jieS+=1;}
}
}
if(($fi=fopen($inifilename,"w")))
{
flock($fi,LOCK_EX);//排它鎖
fwrite($fi,$newini);
flock($fi,LOCK_UN);
fclose($fi);
returntrue;
}
returnfalse;//寫文件失敗
}
ini_file('你的文件名','123','qew','456');