Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP if-如果数据变量为空,则隐藏周围的文本_Php_If Statement - Fatal编程技术网

PHP if-如果数据变量为空,则隐藏周围的文本

PHP if-如果数据变量为空,则隐藏周围的文本,php,if-statement,Php,If Statement,几年前,我一直想让我的PHP代码片段更有用,同时使用某种IF语句。但我觉得这太复杂了,所以今天我逼着我最后请求帮助 因此,我需要一些编码方面的帮助,如果数据为空,请隐藏变量周围的文本,但这段代码有一些扭曲,我无法解决。我已经尽力使我的代码片段尽可能干净,所以希望它仍然可以保持干净 请容忍我,因为我对PHP的知识非常有限 此代码是输出给定信息的javascript的一部分 { title: "This is it", file: "thisisit.mp4", image: "happy.jpg"

几年前,我一直想让我的PHP代码片段更有用,同时使用某种IF语句。但我觉得这太复杂了,所以今天我逼着我最后请求帮助

因此,我需要一些编码方面的帮助,如果数据为空,请隐藏变量周围的文本,但这段代码有一些扭曲,我无法解决。我已经尽力使我的代码片段尽可能干净,所以希望它仍然可以保持干净

请容忍我,因为我对PHP的知识非常有限

此代码是输出给定信息的javascript的一部分

{
title: "This is it",
file: "thisisit.mp4",
image: "happy.jpg",
description: "some text right here",
},
我已经成功地将javascript的这一部分封装在PHP中,因此我可以使用变量,并将信息存储在外部的其他地方

echo '
{
title: "'.$data[2].' - '.$data[3].' ('.$data[0].') <img src=\"'.$data[10].'\"/>",
file: "'.$data[6].'",
image: "'.$data[9].'",
description: "'.$data[4].' <br><a href='.$data[8].'>Read more</a> ",
},
';
echo'
{
标题:“'.$data[2].-'.$data[3].('.$data[0].')”,
文件:“'.$data[6]”,
图像:“'.$data[9]”,
说明:“'.$data[4].
”, }, ';
上面的工作应该是这样的。如果填充了任何变量,则该变量将按原样显示,如果为空,则不会输出任何内容。 但现在我希望在变量周围有一个模板文本或html,以便仅在变量中有数据时显示

以数据[8]为例。该数据将只包含一个URL,以便阅读更多内容。只要有一个URL就可以了,但是如果没有给出URL,那么它只会显示一个没有URL的阅读更多链接。 因此,如果数据是空的,那么我不想显示与该数据变量相关的任何文本或链接

我尝试过使用IF语句,但我不知道这是否正确,或者我只是不知道如何正确地实现它。无论我做什么,最终都会出错

像这样的反复试验,仍然在同一个回声中

    echo '
    {
    title: "'.$data[2].' - '.$data[3].' ('.$data[0].') <img class=\"jwTitleIcon\" src=\"'.$data[10].'\"/>",
    file: "'.$data[6].'",
    image: "'.$data[9].'",
    description: "'.$data[4].'  '.if($data[8]) else{.'<br><a href='.$data[8].'</a>} ",
 },
 ';
echo'
{
标题:“'.$data[2].-'.$data[3].('.$data[0].')”,
文件:“'.$data[6]”,
图像:“'.$data[9]”,
说明:“'.$data[4].'.if($data[8])else{.'
}”, }, ';
或者这个(在上找到的) 这并没有给出错误,但由于html输出为空,代码不知何故破坏了某些东西。可能会弄乱javascript,因为它非常敏感

echo '
{
title: "'.$data[2].' - '.$data[3].' ('.$data[0].') <img class=\"jwTitleIcon\" src=\"'.$data[10].'\"/>",
file: "'.$data[6].'",
image: "'.$data[9].'",
description: "'.$data[4].' ';
echo !empty($data[8]) ? '<br><a href='.$data[8].'>Habba hej</a> ':' ",
},
';
echo'
{
标题:“'.$data[2].-'.$data[3].('.$data[0].')”,
文件:“'.$data[6]”,
图像:“'.$data[9]”,
说明:“.$data[4]”;
echo!empty($data[8])?“
”:“, }, ';

谢谢你的帮助。谢谢

最好使用
json_encode()
将PHP值转换为Javascript文本,而不是使用自己的
echo
语句

在此范围内,可以使用第三级运算符

$data2 = array(
    'title' => "$data[2] - $data[3] ($data[0]) <img class='jwTitleIcon' src='$data[10]'>",
    'file' => data[6],
    'image' => $data[9],
    'description' => $data[4] . (!empty($data[8]) ? "<br><a href='$data[8]'>Habba hej</a>" : "")
);
echo json_encode($data2) . ",";
$data2=数组(
'title'=>“$data[2]-$data[3]($data[0])”,
'文件'=>数据[6],
'image'=>$data[9],
'description'=>$data[4]。(!empty($data[8])?“
”:“”) ); echo json_编码($data2)。",";
正如Barmar所说,使用json_编码将更容易

此函数将数组作为参数并输出相应的json

因此,基本上,您需要做的是创建一个数组,其中键是对象中的键

我将用你的例子(描述)做一个例子,让你适应剩下的

$output = []; // We start with an empty array

// Let's consider that there is a description
$output['description'] = $data[4];

if(!empty($data[8])) { // If there is a link at $data[8], append it to the description
    $output['description'] .= '<br><a href='; // append the html
    $output['description'] .= $data[8]; // append the link
    $output['description'] .= '>Read more</a>'; // append the end of the html


    // One line equivalent :
    // $output['description'] .= '<br><a href=' . $data[8] . '>Read more</a>';
}

// Then you echo the json_encoded output
echo json_encode($output);

Barmar帮我写了一行代码

. (!empty($data[8]) ? "<br><a href='$data[8]'>Habba hej</a>" : "")
。(!empty($data[8])?“
”:“”)
这实际上实现了使用echo的技巧。也许这不是最好的编码方式,也不是每个人都推荐的json编码方式,但是它现在工作得很好,如下所示

工作

echo '
{ // <- Essential. Starting bracket 
title: "'.$data[2].' - '.$data[3].' ('.$data[0].') <img class=\"jwTitleIcon\" src=\"'.$data[10].'\"/>",
file: "'.$data[6].'",
image: "'.$data[9].'",
description: "'.$data[4] . (!empty($data[8]) ? '<br><a target=\"_blank\" href=\"'.$data[8].'\">Habba hej</a>' : ""). '",
}, // <- Essential. Ending bracket
';
echo'

{//不要像这样手工创建JSON,使用
JSON\u encode()
。这个答案是正确的;不要使用echo生成对象序列化,OP是过度工程。嗨,Barmar。感谢您的评论。在这种情况下,括号对于javascript的工作是必不可少的。我在尝试将括号添加到示例中时出错。Barmar-尽管您确实帮助了我!空代码行!这s实际上使用了echo。也许这不是不使用json encode的最佳编码,但它工作得很好。你会得到什么错误?
json_encode()
应该包括括号。刚刚注意到我在
class='jwTitleIcon'
中使用了错误的引号,这可能会导致语法错误。它现在应该可以工作了。嗨,Alex。是的,coma对于代码的工作是必不可少的,没有它,输出将是空白的。括号也是必不可少的,没有它,代码将毫无用处。对吗他的意思是我不能使用你的示例?如果你想在每个代码片段后面加一个逗号,你可以使用示例并在这里添加coma
echo json\u encode($output)“,”;
。如果你想在每个代码段后面加逗号,除了最后一个,你可以修改我给出的最后一个例子来做到这一点。你只需复制粘贴我放的前3个例子中的一个的代码/*…将信息片段添加到输出中*/嗨,Alex。感谢你仍然试图帮助我。尽管我仍然很困惑ed.括号和逗号都是必需的。我已经在6月5日9:53给出了答案,你可以在那里看到我评论了哪个括号是必需的。在我的答案中呼应的代码也很重要,它看起来与输出html源代码中的完全一样。否则它会破坏javascript。没问题,所以基本上,你是什么javascript中的回音是一个对象数组,我是否正确(即,
[{…},{…},{…}]
)?如果我遗漏了一个最重要的要求,我很抱歉。我作为echo输出的javascript非常重要,它在html源代码中保持完全相同。否则它会破坏javascript。PHP代码片段实际上在javascript代码中,因为我需要输出中的数据作为变量。很抱歉混乱
$output = []; // We start with an empty array


// Let's consider that there is a description
$output['description'] = $data[4] . (!empty($data[8]) ? ('<br><a href=' . $data[8] . '>Read more</a>') : ''); // We add the link if there is a link at $data[8]

// Then you echo the json_encoded output
echo json_encode($output);
function snippet(&$json, $data) // The reason to put &$sjon and not $json is because we need to have a parameter passed by reference
{
    // HERE PLACE THE CODE OF YOUR SNIPPET
    $output = [];

    /* ... add the pieces of information into the output */

    $json[] = $output; // We add the $output to our array
}

$datas = [/*... array of $data*/];

$json = []; // Create the empty array
foreach ($datas as $data) {
    snippet($json, $data); // Call the snippet
}
echo json_encode($json);
. (!empty($data[8]) ? "<br><a href='$data[8]'>Habba hej</a>" : "")
echo '
{ // <- Essential. Starting bracket 
title: "'.$data[2].' - '.$data[3].' ('.$data[0].') <img class=\"jwTitleIcon\" src=\"'.$data[10].'\"/>",
file: "'.$data[6].'",
image: "'.$data[9].'",
description: "'.$data[4] . (!empty($data[8]) ? '<br><a target=\"_blank\" href=\"'.$data[8].'\">Habba hej</a>' : ""). '",
}, // <- Essential. Ending bracket
';