我必须将文章的内容传递给一个方法,以便它正确地发布到Wordpress中。所有发布的内容都将放入传递给该方法的$content变量中。如何将foreach循环的内容放入$content变量中?
<?php
$return = '';
foreach ($response['daily']['data'] as $cond) {
echo '<br /><br /><strong>' . date('l, F j, Y', $cond['time']) .'</strong><br />
<div id="dailysummary"><br />Daily Summary: ' . $cond['summary'] . '<br /><br /></div>
<table style="border:1px solid #ccc">
<tr>
<td>
High
</td>
<td>
'.round($cond['temperatureMax']).'
</td>
</tr>
<tr>
<td>
Low
</td>
<td>
'.round($cond['temperatureMin']).'
</td>
</tr>
<tr>
<td>
Chance of precip.
</td>
<td>
'.round($cond['precipProbability']).'%
</td>
</tr>
<tr>
<td>
Wind speed
</td>
<td>
'.round($cond['windSpeed']).' mph
</td>
</tr>
<tr>
<td>
Dewpoint.
</td>
<td>
'.round($cond['dewPoint']).'
</td>
</tr>
<tr>
<td>
Humidity
</td>
<td>
'.round($cond['humidity']).'
</td>
</tr>
</table>
<br /><br />';
}
构建变量而不是回显:
$html = '';
foreach(...) {
$html .= '... build html here...';
}
或者保留当前代码,并使用输出缓冲:
ob_start();
foreach(...) {
echo '... html goes here ...';
}
$html = ob_get_clean();
做这件事没有对错之分。无论哪种方式,最终都会在内存中留下一大块html。
这样做:
$content = "";
foreach ($response['daily']['data'] as $cond) {
$content .= '<br /><br /><strong>' . date('l, F j, Y', $cond['time']) .'</strong><br />
[...]
您将创建一个空字符串,并在每个循环中添加更多文本。
就像这样——使用.=
操作符:
$content = '';
foreach ($response['daily']['data'] as $cond) {
$content .= '<br /><br /><strong>' . date('l, F j, Y', $cond['time']).'</strong><br />
<div id="dailysummary"><br />Daily Summary: ' . $cond['summary'] . '<br /><br /></div>
<table style="border:1px solid #ccc">
... ';
}
print $content;