1
我試圖存儲在一個PHP變量一個txt文件,我已經工作的功能,但是有一個問題,我真的不能繞到我的頭。PHP讀取文件到變量
我想讀的使用變量爲這樣的文件名的文件,當我這樣做,腳本不讀取文件,但是當我明確代碼名稱,它工作正常。
我有以下代碼:
$mga_file[] = "./MGA/mga_" . preg_replace("[^a-zA-Z]", "", trim(strtolower($ar_mga[0]))) . "_" . preg_replace("[^a-zA-Z]", "", trim(strtolower($db_producto))) . ".txt";
$mga_file[] = "./MGA/mga_" . preg_replace("[^a-zA-Z]", "", trim(strtolower($ar_mga[0]))) . "_led.txt";
$mga_file[] = "./MGA/mga_high_led.txt";
$mga_file[] = "./MGA/mga_high_".strtolower($db_producto).".txt";
我編輯的代碼想着我的變量$ar_mga[0]
可能有其他字符,但它仍然無法正常工作。使用這個數組,下面的代碼,我有不同的結果:
foreach($mga_file as $file){
$homepage = file_get_contents($file, FILE_USE_INCLUDE_PATH);
echo "[" . $file . "] : ";
echo "<pre>"; print_r($homepage); echo "</pre>";
}
給了我下面的結果:
Array [$mga_file]
(
[0] => ./MGA/mga_high_led.txt //Not Working
[1] => ./MGA/mga_high_led.txt //Not Working
[2] => ./MGA/mga_high_led.txt //Working
[3] => ./MGA/mga_high_led.txt //Working
)
正如你可以看到,文件名是在所有4個值完全相同,我只能讀取最後2個值中的文件會發生什麼?
編輯: 我似乎忽略了一個龐大的細節,該$ar_mga[0]
變量包含我試圖用價值,但它是封閉在一個span標籤(這是我從來沒有見過,直到我檢查的HTML頁面),並且從來沒有工作過因爲這個。從變量中剝離標籤使腳本正常工作。
我的壞!
這真的很奇怪。文件名只是一個字符串,無論是否動態構建它都無關緊要。有一件潛在的問題是使用'FILE_USE_INCLUDE_PATH'。只要走一條絕對的道路,沒有理由不去。不要使用print_r()來打印字符串。 'print_r()'用於數組。一個好的調試值打印機是'var_dump()',如果你有遞歸使用'print_r'作爲後備。 – Halcyon
我已經嘗試過使用絕對路徑,並且發生同樣的問題。 – desto
當您嘗試閱讀文件時,該文件是否可用?它存在嗎? 'file_get_contents'的輸出是什麼?你有錯誤嗎? – Halcyon