2011-09-22 91 views
0

我的問題與我想的php.ini文件有關,但它可能是別的。php.ini的問題

比方說,我們有一個站點體系結構,其中根目錄內有另一個名爲img的目錄和一個名爲index.php的文件。目錄img內有一個名爲image.jpg的文件。

所以在index.php,要引用一個圖像,我會使用/img/image.jpg

我的問題是,我應該改變什麼php.ini能寫img/image.jpg,而不是/img/image.jpg

謝謝

+0

你應該改變你的奇怪的編碼怪癖/要求。 – ceejayoz

回答

1

沒有PHP可以做。你可以基本上用Apache重寫,但是使用絕對路徑更合理。你不應該嘗試混合絕對路徑和相對路徑,因爲它只會在將來給你帶來問題。將「/」添加到路徑的前面會出現什麼問題?

不僅如此,它還會讓試圖調試代碼的人感到困惑,因爲所有相對路徑都成爲Apache中的絕對路徑。

+0

這是事情。我只是第一次安裝了xampp,並且我注意到我的網站工作得很好,在xampp上運行得並不好,顯然它與/有關。 –

+0

這是因爲Web服務器使用所有文件都應該在其中的Web根目錄,而本地計算機的'/'可能意味着任何內容。哇,你正在考慮這樣做,所以你可以在你的*本地*機器上更容易地測試它。 Tisk tisk。 – animuson

2

相對路徑通過網絡瀏覽器解決,而不是通過PHP解決。無法在Web服務器上覆蓋此行爲。

0

我的問題是,我應該在php.ini中更改以便能夠寫入img/image.jpg而不是/img/image.jpg

這是回答你的問題,但不是你想聽到的答案。這很簡單,我們首先列表中的INI設置:

  1. auto_prepend_file(可能與include_path一起)

而這一切。它是如何工作的:

預先使用ini指令的php腳本。該文件,你start output緩衝用自己的回調函數內:

function callback($buffer) 
{ 
    // slash that image that you want to write without slash 
    return (str_replace("img/image.jpg", "/img/image.jpg", $buffer)); 
} 

ob_start("callback"); 

你現在能寫img/image.jpg而不是/img/image.jpg因爲你的輸出濾波功能並重新寫吧。

但要小心,你不是試圖用這個來解決錯誤的結局。超文本引用的一般規則適用,請參閱Uniform Resource Identifier (URI): Generic Syntax ,Hypertext Transfer Protocol -- HTTP/1.1 Hypertext Markup Language - 2.0