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