2013-01-13 66 views
1

我的網頁文件存在下如何調用目前在私人文件夾中的文件在PHP

d:\的Inetpub \虛擬主機\ website.com \ HTTP \

我可以在裏面調用文件我從上述目錄中的所有網頁文件,如

website.com \的index.php等等

現在我想將一個文件的私有文件夾出於安全原因,特別是保存密碼

d:\的Inetpub \虛擬主機\ website.com \私人\ test.ini

我想用這個在下面的函數 parse_ini_file( 「* <路徑> * test.ini」)

應該是什麼<路徑值> test.ini文件?

當我使用d:\的Inetpub \虛擬主機\ website.org \私人\ test.ini它說 警告:parse_ini_file(d:\ inetpubhosts \ website.com \私人est.ini) function.parse-ini文件]:未能打開流:

+0

#1。路徑的值是'D:\ inetpub \ vhosts \ website.com \ private \'。 #2。您可以將配置文件保存在test.php中,並將變量放入數組或常量中,因此不需要解析ini文件,只需包含。 –

+0

Eeeeewwww,你使用IIS。 –

+0

@Glavić:D:\ inetpub \ vhosts \ website.com \ private正在拋出錯誤 – logan

回答

1

對於

d:\的Inetpub \虛擬主機\ website.com \ HTTP \的index.php

<?php 

print_r(parse_ini_file('../private/test.ini')); 

要訪問

d:\的Inetpub \虛擬主機\ website.com \私人\ test.ini

PHP將會被自動轉換Unix風格的目錄名稱分隔符(/ insted的),以windows風格,這使得一些事情easyer 。

如果您想要獨立於includep路徑和cwd,請使用。因爲PHP 工作5.3

<?php 

print_r(parse_ini_file(__DIR__ . '/../private/test.ini')); 

http://php.net/manual/en/language.constants.predefined.php

+0

它拋出錯誤 警告:parse_ini_file(__ __ DIR/.. /私營/ test.ini)function.parse-ini文件]:未能打開流:沒有這樣的文件或目錄 – logan

+0

不遠程的qutes。並檢查上面是否是即時通訊。 – GreenRover

+0

我剛剛複製粘貼任何您鍵入。它顯示 警告:parse_ini_file(__ DIR __/.. /私人/ test.ini)[function.parse-ini文件]:未能打開流:沒有這樣的文件或目錄 – logan

2

好吧,如果你知道你的private文件夾將高於一級目錄,你可以做這樣的事情:

<?php 
define ('DS', DIRECTORY_SEPARATOR);    // So we don't have to type DIRECTORY_SEPARATOR... 
define ('ROOT_DIRECTORY', dirname(__FILE__)); 
define ('PRIVATE_DIRECTORY', ROOT_DIRECTORY . DS . 'private'); 

現在,您可以只是做這樣的東西:

<?php 
$parsed = parse_ini_file (PRIVATE_DIRECTORY . DS . 'my_ini_file.ini'); 

// or 
require_once PRIVATE_DIRECTORY . DS . 'myfile.php'; 

注意:這也是與系統無關的,因爲它可以在Windows和* nix系統上正常工作,沒有任何問題。

你可以在PHP手冊的更多信息:dirname()DIRECTORY_SEPARATOR__FILE__

編輯:

如果根文件夾將超過一個等級以上的目錄結構,你總是可以做到這一點:

<?php 
// If the directory in which this file is located is: D:\inetpub\foo\bar\baz\file.php 
// and the root directory is D:\inetpub\foo 
// Then you can do the followwing 
define ('ROOT_DIRECTORY', dirname(dirname(dirname(__FILE__)))); 

// dirname ("D:\inetpub\foo\bar\baz\file.php"); // D:\inetpub\foo\bar\baz 
// dirname ("D:\inetpub\foo\bar\baz");    // D:\inetpub\foo\bar 
// dirname ("D:\inetpub\foo\bar");     // D:\inetpub\foo 

它的所有定義你ROOT目錄和使用,作爲定義/包括一切的參考。

希望這會有幫助

+0

它可以是上述一個以上的目錄水平..如何調用該文件,如果我在d:\的Inetpub \虛擬主機\ website.com \ HTTP \測試\ 並調用d:\的Inetpub \虛擬主機\ website.com \私人\ test.ini – logan

+0

只需添加更多的調用'目錄名()'。我將在編輯中做一個示例。 – vanneto

+0

還說,警告:parse_ini_file(d:\的Inetpub \虛擬主機\ website.com \的httpdocs \測試\私人\ test.ini) 我想要的值是d:\的Inetpub \虛擬主機\ website.com \私人\測試.ini 我正在運行D:\ inetpub \ vhosts \ website.com \ httpdocs \ test \ sample.php – logan