内爆返回的第一个价值不同?

时间:2013-08-07 19:31:07

标签: php html

我不确定为什么我的数组中的第一个值会添加<p>个标记,其余值在li个标记内很好用。

//user posted variable
$checks = $_POST['personalization_result'];


//handling the form data and outputting it into a list
if(!empty($checks)){
$checkValues = array_values($checks);
$checkString = implode('<li style="list-style: none;">'.get_post_meta($post->ID, '_moon_question', true).'', $checkValues);
}  


// I need this filter so it can parse the html in the email
add_filter('wp_mail_content_type',create_function('', 'return "text/html";'));


  //E-mailing my form data here
  $sent = wp_mail($to, $subject, $checkString, $headers);

这样可以发送电子邮件,但出于某种原因它看起来像这样。

<p>1</p> //this is the first value it should look like below
<li style="list-style: none;">Suits1</li>
<li style="list-style: none;">Suits1</li>
<li style="list-style: none;">Suits1</li>
<li style="list-style: none;">Suits0</li>
<li style="list-style: none;">Suits0</li>

我希望我能解决这个问题,但坦率地说我不确定问题出在哪里?我觉得它里面的implode也许HTML没有正确写好?

1 个答案:

答案 0 :(得分:1)

Implode正在添加给定String的所有出现的给定String BETWEEN。这意味着,您提供的输出COULT NOT不是由您提供的脚本生成的,因为在任何地方都没有</li>

除了事实,没有人知道,get_post_meta($post->ID, '_moon_question', true)会返回什么,你很可能想要生成一个列表?

然后要去的代码就是这样:

注意:第一个Openig和LAST结束标记需要分开,因为implode只会添加IN BETWEEN。 因此,“在字符串之间”需要以结束标记开头,并以开头标记结束。

echo "<li>".implode("</li><li>", $myArray)."</li>";