2017-02-21 88 views
-1

我有一个使用foreach循环读取文本文件的脚本,但字符串无法识别“$ _GET”或“[]”以显示或回显字符串。如果echo工作正常,那么我可以将字符串输出追加到另一个php文件中执行,但我无法使字符串正确回显。请指教。 THX

<?php 

$filename = "./client.txt"; 
echo $filename ."\n"."<br>" ; 
$contents = file($filename); 
foreach ($contents as $line) { 
    $line = str_replace(PHP_EOL, '', $line); 
    $str = " $$line=$_GET["$line"]; " ; 
echo $str; 
} 

?> 

-------------------------------------- 
Text file: client.txt 
DEPLOYMENT_ID 
CLINICAL_APP 
ZOO_MAX 
SVN_REPO 

--------------------------------------- 
Echo output should be: 

$DEPLOYMENT_ID=$_GET["DEPLOYMENT_ID"]; 
$CLINICAL_APP=$_GET["CLINICAL_APP"]; 
$ZOO_MAX=$_GET["ZOO_MAX"]; 
$SVN_REPO=$_GET["SVN_REPO"]; 
+0

使用单引号代替双 –

回答

0

可以使用sprintf

sprintf("$%s=\$_GET['%s']",$line,$line);

+0

仍然无法正常工作,我收到相同的错误,$ line仍然未定义。请指教。 thx – Ann

+0

实际错误“Undefined variable:str in phploop2.php on line 13”。请指教。 thx – Ann

+0

我修复了str变量,它似乎工作。 $ str = sprintf(“$%s = \ $ _ GET ['%s'];”,$ line,$ line。“\ n”); – Ann

2

如果你只是想呼应它,使用'单引号内GET

$str = " $$line=$_GET['" . $line . "'] " ; 
+0

我不知道为什么我得到这个错误“语法错误,意外的T_ENCAPSED_AND_WHITESPACE,期待T_STRING或T_VAR IABLE或T_NUM_STRING在第11行的phploop2.php中“。请指教。 Thx – Ann

+0

执行'$ line'显示任何输出而不是未定义或空值? –

+0

输出显示未定义。请指教。 thx – Ann