2011-09-24 28 views
0

有没有办法将这段代码保存到PHP变量中?这样做的原因是因为我想通过mail()如何将此代码保存到变量中?

echo 'MONDAY<BR>'; 
query_posts('meta_key=Date1&meta_value=MONDAY'); 
while (have_posts()): 
    the_post(); 
    if (in_category('11')) { 
     echo get_post_meta($post->ID, 'HomeSlogan', true); 
    } else { 
     the_title(); 
    } 
    echo'<br>'; 
endwhile; 

发送它这是zneak表明

<?php 

ob_start(); 
echo 'MONDAY<br>'; 
query_posts('meta_key=Date1&meta_value=MONDAY'); 
while (have_posts()): 
    the_post(); 
    if (in_category('11')) { 
     echo get_post_meta($post->ID, 'HomeSlogan', true); 
    } else { 
     the_title(); 
    } 
    echo'<br>'; 
endwhile; 

$mail = ob_get_contents(); 
echo $mail; 
ob_end_clean(); 

?> 
+0

我不知道这是如何总是你的代码格式,但它是非常不可读的。 –

+0

@JaredFarrish什么是用于格式化的工具?我使用记事本,所以稍后格式化。 – EnexoOnoma

+0

即使在代码编辑器中,我也可以手工格式化;我最初使用记事本学习并使用它多年(现在我使用Dreamweaver,但仅用于代码突出显示)。不要*以后格式*;用PHP等C风格语言进行格式化可以提高**的可读性,并帮助您和其他人以更一致的方式阅读和理解您的代码。 –

回答

1

您可以使用字符串连接,避免echo完全,或使用输出缓冲。输出缓冲将脚本的输出保存到缓冲区中,而不是将其发送到浏览器,因此如果您有打印文本并且无法真正控制的功能,则它更易于使用。

// concatenation 
$mail = 'MONDAY<br>'; 
$mail .= 'more text'; 
$mail .= 'yet more text'; 

// output buffering 
ob_start(); 
echo 'MONDAY<br>'; 
echo 'more text'; 
echo 'yet more text'; 

$mail = ob_get_contents(); 
ob_end_clean(); 

对于输出缓冲,你可能想了解ob_startob_get_contentsob_end_clean

+0

一个while循环? – EnexoOnoma

+1

@Giorkouros - 在'ob_start()'和'ob_get_contents()'之间放置'while'循环。 –

+0

我用你的例子更新了我的问题,但是我没有得到任何输出... – EnexoOnoma