我一直試圖調試這個錯誤現在超過三個小時,更改文件名,嘗試使用GeoIP Lite代替GeoCity(後者有一個27mb文件被包含,所以這個想法fopen()
有一個最大值),等等。即使文件存在,GeoIP&fopen() - 「fopen(GeoIP/GeoIP.dat)[function.fopen]:未能打開流」出現?
這裏是我的結構文件結構:index.php -> include("configuration/config.php") - config.php -> include("inc/geo_text.php") -> geo_text.php
的geo_text.php
內容是:
$ip = $_SERVER['REMOTE_ADDR'];
include("GeoIP/geoip.inc");
$gi = geoip_open("GeoIP/GeoIP.dat",GEOIP_STANDARD);
$count_name = geoip_country_name_by_addr($gi, $ip);
geoip_close($gi);
echo($count_name);
現在,如果我訪問geo_text.php
沒有錯誤的給出,只是爲了確保我放在echo($count_name)
在geo_text.php
,它回到了我的國家。
然而,當我運行config.php
它返回的錯誤:
Warning: fopen(GeoIP/GeoIP.dat) [function.fopen]: failed to open stream: No such file or directory in /nfs/c09/h02/mnt/177978/domains/domain.com/html/labs/final/configuration/inc/GeoIP/geoip.inc on line 399 Can not open GeoIP/GeoIP.dat
有沒有人有任何想法,這可能是爲什麼?
它似乎是在/nfs/c09/h02/mnt/177978/domains/domain.com/html/labs中查找它/final/configuration/inc/GeoIP/GeoIP/geoip.inc,因爲geoip.inc已經在GeoIP目錄中,您可能需要將其更改爲(「GeoIP.dat」)。 – Joe
我試過了,它不起作用:(還有,它不能解釋爲什麼'geo_text.php'會起作用,但'config.php'不會。我想它一定是某種東西我不確定是什麼 – Avicinnian
啊,這是因爲我沒有使用絕對路徑,但它仍然不能解釋爲什麼'geo_text.php'可以工作,而其他人不會這樣做, t。當文件A被包含到文件B中,而文件B又被包含到文件C中時,它是否嘗試通過文件B的路徑將文件A解析爲文件C,即如果文件B包含「C/GeoIP/GeoIP.dat」和文件A包含文件B,它是否也查找'C/GeoIP/GeoIP.dat'而不是'B/C/GeoIP/GeoIP.dat'或其他? – Avicinnian