所以我需要根据php中变量的名称创建一个动态文本文件(例如:dynamicName.txt)。然后我需要在文件中写入其他变量。
$testVar = "test.txt";
function sendCalc(){
global $testVar;
$objCalcTxt = ("C:\\xampp\\htdocs\\test.new\\upload\\$testVar");
$fp = fopen($objCalcTxt, 'x');
fwrite($fp, "Test\n");
fclose($fp);
当我执行上述操作时,创建的文件没有问题,并且所有数据都已成功写入。但是,这不是动态文件名。
$objName = "dynamicName";
$ext = ".txt"
$dynamicNameTxt = $objName.$ext;
function sendCalc(){
global $objName;
global $ext;
global $dynamicNameTxt;
$objCalcTxt = ("C:\\xampp\\htdocs\\test.new\\upload\\$dynamicNameTxt");
$fp = fopen($objCalcTxt, 'x');
fwrite($fp, "Test\n");
fclose($fp);
当我尝试连接包含动态文件名($ objName)的变量和$ ext var时,它不想创建文件。
我回显了$ dynamicName var并返回dynamicName.txt,所以为什么这不能用fopen工作。基本上它必须是串联的问题吗?如果是这样,我可以以不同的方式连接,还是使用不同的方法打开/创建文件?
感谢所有帮助/想法。
答案 0 :(得分:0)
我真的不知道你用线路想要实现的目标
$objCalcTxt = ("C:\\xampp\\htdocs\\test.new\\upload\\$dynamicNameTxt");
如果根据我的理解它应该只是一个字符串:
$objCalcTxt = "C:\\xampp\\htdocs\\test.new\\upload\\".$dynamicNameTxt;
另外我建议您提供所需的变量作为使用globals
function sendCalc($objName, $ext, $dynamicNameTxt){
...
}
答案 1 :(得分:0)
您正在声明函数内的全局变量。这可能会破坏他们的初始价值。 而不是在函数中使用全局变量,而是将变量作为参数传递:
$objName = "dynamicName";
$ext = ".txt"
$dynamicNameTxt = $objName.$ext;
function sendCalc(objName, $ext, $dynamicNameTxt)
{
$objCalcTxt = ("C:\\xampp\\htdocs\\test.new\\upload\\$dynamicNameTxt");
$fp = fopen($objCalcTxt, 'x');
fwrite($fp, "Test\n");
fclose($fp);
}
您的另一个选择是专门调用全局变量:
global $objName;
global $ext;
global $dynamicNameTxt;
$objName = "dynamicName";
$ext = ".txt"
$dynamicNameTxt = $objName.$ext;
function sendCalc()
{
$objCalcTxt = ("C:\\xampp\\htdocs\\test.new\\upload\\".$GLOBAL['dynamicNameTxt']);
$fp = fopen($objCalcTxt, 'x');
fwrite($fp, "Test\n");
fclose($fp);
}