我怀疑这是不允许的
我正在尝试根据用户选择过滤数据..
以下是根据用户输入动态更改代码的变量。
有时变量$ p具有
$p="$line[10]=='MICRO'";
或
$p="$line[10]=='MICRO' || $line[10]=='NO'";
或
$p="$line[10]=='MBTS' || $line[10]=='MICRO' || $line[10]=='NO' || $line[10]=='ODM' && $line[9]=='HUBSITE' || $line[10]=='NO'";
只有 $ p变量数据才会根据用户的选择动态变化。
并且$ line数组中的数字是csv文件的列号。
它的作用是在变量中显示值列表,并且必须打印这些值 在if条件
这里我使用的是CSV文件,在csv文件中,我使用上述变量过滤了particualr列。
<?php
$circle_sheet="DETAILS.csv";
$f = fopen($circle_sheet, "r");
while (($line = fgetcsv($f)) !== false)
{
$p=eval($p);
if(${$p})
{
echo "<tr>";
foreach($line as $cell)
{
echo "<td style='color:white;'>" . htmlspecialchars($cell) . "</td>";
}echo "</tr>\n";
}
}
?>
在上面的while循环中if条件错误,$ p变量数据必须在if中回显..
但是我得到了 Parse错误:语法错误,意外的T_ECHO
答案 0 :(得分:-1)
如果我的问题正确,你可以做(如果eval(“return”。$ p))。但是,不建议评估用户输入。 php documentation for eval
像这样:
<?php
$circle_sheet="DETAILS.csv";
$f = fopen($circle_sheet, "r");
while (($line = fgetcsv($f)) !== false)
{
if(eval("return ".$p))
{
echo "<tr>";
foreach($line as $cell)
{
echo "<td style='color:white;'>" . htmlspecialchars($cell) . "</td>";
}echo "</tr>\n";
}
}
?>