2013-04-30 103 views
0

我正在嘗試以下操作:從php文檔打開文件,並從另一個關閉它?

打開一個文件,從php中說「myfile.json」,我們稱其爲「utils.php」;在其他的PHP頁面中使用它;關閉它從另一個PHP。

我試圖在其他文件中包含「utils.php」並在utils文件中寫入,但似乎不起作用。我想這是因爲utils.php從來沒有被實際執行過,只包括在內,但是如果我應該執行它,我怎麼能做到這一點,而不必刷新任何頁面,最好是當用戶登錄主頁時?這不應該被用戶看到,他認爲應該仍然是主頁。

在此先感謝,我對PHP很陌生,正在努力學習。

+0

你想寫入'utils.php'的是什麼? – dbf 2013-04-30 19:48:46

+0

只要腳本運行完畢,php資源就會自動關閉。我可以看到發生這種情況的最佳方式是,如果您將腳本作爲接受連接的服務器運行,那麼您可以打開關閉「服務器」上的資源(如腳本)而不是您的http腳本。 – 2013-04-30 19:53:06

回答

1

當您包含文件時,您正在運行其中的所有代碼。函數和類不會被評估,但會被定義以供將來使用。如果您以此示例打開文件:

util.php 

    <?php 

    $file_hand = fopen('/tmp/file.txt','r'); 

如果操作完成,您將擁有一個句柄。但是,變量$ file_hand是全局變量。如果你需要使用一個函數來關閉它,你將需要下面的代碼來做到這一點:

other.php 
function close_file(){ 
    global $file_hand; 
    fclose($file_hand) 
} 

,或者您可以通過句柄作爲參數,如:

function close_file($file_hand){ 
    fclose($file_hand) 
} 

並沒有多麼你將關閉該文件。您必須確保您使用的變量與utils.php中創建的變量相同。如果你這樣關閉:

function close_file(){ 
    fclose($file_hand) 
} 

你在until.php文件中創建的變量與此不同。

+0

我認爲我做了其他的錯誤。我試過這樣的東西,但是錯誤實際上是在utils中。所以我認爲當我將它包含在內時,我做的是錯誤的,而變量實際上沒有定義。謝謝 – 2013-04-30 20:15:52