【问题标题】:Hiding lines if php variable is empty如果 php 变量为空,则隐藏行
【发布时间】:2018-05-13 14:30:08
【问题描述】:

我正在尝试在变量中执行 php 代码,如果变量为空,它将阻止文本打印。代码如下:

$file = 'file.txt';

if (file_exists($file)) {
    $counter += file_get_contents($file);
}
file_put_contents($file, $counter);

$Item1 = @$_POST['Item1'];
$Item2 = @$_POST['Item2'];

$filename = "mydata.txt";
$txt = "\n";

$f_data= '
'<?php if (isset($Item1) && !empty($Item1)) { ?>' Item 1 : '.$Item1.' '} ?>'
'<?php if (isset($Item2) && !empty($Item2)) { ?>' Item 2 : '.$Item2.' '} ?>'
';

$file = fopen($filename, "a");
fwrite($file,$f_data);
fclose($file);
}
else
{
die("error");
}

我在以下位置遇到问题:

'<?php if (isset($Item1) && !empty($Item1)) { ?>' Item 1 : '.$Item1.' '}'
'<?php if (isset($Item2) && !empty($Item2)) { ?>' Item 2 : '.$Item2.' '}'

如果表单中的@$_POST['Item2'] 为空,此代码基本上会阻止打印“Item 2:”。

我使用的代码在这里:https://stackoverflow.com/a/24857671/5008955

我收到此行的错误“Parse error: syntax error, unexpected '?'”。

感谢您的帮助。

【问题讨论】:

  • 为什么你要再次使用 php 标签,它已经在 php 中了
  • 你可以试试这个 $f_data= "" 'Item 2 : '.$Item2.'} ';

标签: php


【解决方案1】:

您似乎输入了 PHP 标记,然后又离开了两次。

'<?php if (isset($Item1) && !empty($Item1)) { ?>' Item 1 : '.$Item1.' '} ?>'
'<?php if (isset($Item2) && !empty($Item2)) { ?>' Item 2 : '.$Item2.' '} ?>'

您应该具备以下条件:

'<?php if (isset($Item1) && !empty($Item1)) { ?>' Item 1 : '.$Item1.' ' <?php } ?>'
'<?php if (isset($Item2) && !empty($Item2)) { ?>' Item 2 : '.$Item2.' ' <?php } ?>'

您还要检查是否设置了$Item1$Item2,无论是否从表单接收到任何数据,这些变量都将按照您定义的方式设置。

所以你可以做到:

'<?php if (!empty($Item1)) { ?>' Item 1 : '.$Item1.' ' <?php } ?>'
'<?php if (!empty($Item2)) { ?>' Item 2 : '.$Item2.' ' <?php } ?>'

或者更进一步:

'<?php echo (empty($Item1)) ?: " Item 1 : $Item1 "?>'
'<?php echo (empty($Item2)) ?: " Item 2 : $Item2 "?>'

你也可以这样写:

// Set the $f_data variable so that if neither $Item1 or $Item2 
// have any data, your `fwrite($file,$f_data);` won't fail.

$f_data = '';

if (!empty($Item1)) {
    $f_data .= "Item 1 : $Item1 ";
}
if (!empty($Item2)) {
    $f_data .= "Item 2 : $Item2 ";
}

【讨论】:

  • 当我使用 '' Item 1 : ' 时,我仍然收到错误“解析错误:语法错误,意外'?'”。 $项目1。 ' '
  • 仍然遇到同样的错误。你能告诉我整个代码,这样我就可以知道'没有做错什么?
  • 您为$Item1$Item2 输入什么数据?
  • $Item1 和 $Item2 数据是通过 $Item1 = @$_POST['Item1']; 从表单提交中检索到的
  • 对不起,您在测试时输入了哪些数据?
猜你喜欢
  • 2014-09-11
  • 1970-01-01
  • 1970-01-01
  • 2018-12-31
  • 2022-01-16
  • 1970-01-01
  • 2021-11-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多