2016-03-01 31 views
1

我正在使用庫以.ini格式寫入文件。消息:fopen()期望參數1是一個有效的路徑,給出的數組

現在,這是我的我寫功能:

function write($file = NULL, $data = array(), $sections = TRUE) { 
    $this->data = (!empty($data)) ? $data : $this->data; 
    $this->file = ($file) ? $file : $this->file; 
    $this->sections = $sections; 
    $content = NULL; 

    if ($this->sections) { 
     foreach ($this->data as $section => $data) { 
      $content .= '[' . $section . ']' . PHP_EOL; 
      foreach ($data as $key => $val) { 
       if (is_array($val)) { 
        foreach ($val as $v) { 
         $content .= $key . '[] = ' . (is_numeric($v) ? $v : '"' . $v . '"') . PHP_EOL; 
        } 
       } elseif (empty($val)) { 
        $content .= $key . ' = ' . PHP_EOL; 
       } else { 
        $content .= $key . ' = ' . (is_numeric($val) ? $val : '"' . $val . '"') . PHP_EOL; 
       } 
      } 
      $content .= PHP_EOL; 
     } 
    } else { 
     foreach ($this->data as $key => $val) { 
      if (is_array($val)) { 
       foreach ($val as $v) { 
        $content .= $key . '[] = ' . (is_numeric($v) ? $v : '"' . $v . '"') . PHP_EOL; 
       } 
      } elseif (empty($val)) { 
       $content .= $key . ' = ' . PHP_EOL; 
      } else { 
       $content .= $key . ' = ' . (is_numeric($val) ? $val : '"' . $val . '"') . PHP_EOL; 
      } 
     } 
    } 

    return (($handle = fopen($this->file, 'w')) && fwrite($handle, trim($content)) && fclose($handle)) ? TRUE : FALSE; 
} 

而且我寫我的內容我給這樣的文件:

   $file = $path.$filename; 

       $ini = new INI($file); 



        // Save settings to file 
       $ini->write($insert); 

ON的var_dump($ INI);我得到:

object(INI)[76] 
    public 'file' => string 'C:/wamp/www/bizrtc/uploads/test1.ini' (length=36) 
    public 'data' => 
    array (size=3) 
     'INIDetails' => 
     array (size=11) 
      'SipUserName' => string '' (length=0) 
      'Password' => string '' (length=0) 
      'Domain' => string '' (length=0) 
      'Proxy' => string '' (length=0) 
      'Port' => string '' (length=0) 
      'SipAuthName' => string '' (length=0) 
      'DisplayName' => string '' (length=0) 
      'ServerMode' => string '' (length=0) 
      'UCServer' => string '' (length=0) 
      'UCUserName' => string '' (length=0) 
      'UCPassword' => string '' (length=0) 
     'DialPlan' => 
     array (size=3) 
      'DP_Exception' => string '' (length=0) 
      'DP_Rule1' => string '' (length=0) 
      'DP_Rule2' => string '' (length=0) 
     'Advanced' => 
     array (size=14) 
      'OperationMode' => string '' (length=0) 
      'MutePkey' => string '' (length=0) 
      'Codec' => string '' (length=0) 
      'PTime' => string '' (length=0) 
      'AudioMode' => string '' (length=0) 
      'SoftwareAEC' => string '' (length=0) 
      'EchoTailLength' => string '' (length=0) 
      'PlaybackBuffer' => string '' (length=0) 
      'CaptureBuffer' => string '' (length=0) 
      'JBPrefetchDelay' => string '' (length=0) 
      'JBMaxDelay' => string '' (length=0) 
      'SipToS' => string '' (length=0) 
      'RTPToS' => string '' (length=0) 
      'LogLevel' => string '' (length=0) 
    public 'sections' => boolean true 

我在哪裏錯了?我該怎麼做才能讓這個工作?

+2

檢查'$ this-> file'中的值。 – urfusion

+0

@urfusion當我的var_dump($ INI)我得到這個公開 '文件'=>字符串 'C:/wamp/www/bizrtc/uploads/test1.ini'(長度= 36) – Rajan

+0

你逝去'$ insert'在'$ ini->寫($插入);'。 '$ insert'的值在哪裏? – urfusion

回答

2

沒有整個類和錯誤的行號可能難以猜測。該方法似乎沒問題,至少有部分是打開的。對我來說,似乎你的財產已被其他地方覆蓋。儘量讓它保密,看看會發生什麼,也許這會幫助你發現問題。

相關問題