如何在php中回送循环并将其放入变量中?
嗨,我在从php发送数据到pdf时遇到问题。我认为唯一的方法是将数据放入一个变量,该变量将被发送到pdf函数。 下面是我需要放入php变量中的代码如何在php中回送循环并将其放入变量中?,php,javascript,jquery,ajax,Php,Javascript,Jquery,Ajax,嗨,我在从php发送数据到pdf时遇到问题。我认为唯一的方法是将数据放入一个变量,该变量将被发送到pdf函数。 下面是我需要放入php变量中的代码 <table width="95%" height="95%"> <tr> <td align="center"> <table width="100%" border="0" cellpadding="2" cell
<table width="95%" height="95%">
<tr>
<td align="center">
<table width="100%" border="0" cellpadding="2" cellspacing="2">
<tr align="center">
<td colspan="7" bgcolor="#2561cf" style="color:#FFFFFF"><strong><?php echo $monthNames[$cMonth-1].' '.$cYear; ?></strong></td>
</tr>
<tr>
<td align="center" bgcolor="#2561cf" style="color:#FFFFFF"><strong>Sun</strong></td>
<td align="center" bgcolor="#2561cf" style="color:#FFFFFF"><strong>Mon</strong></td>
<td align="center" bgcolor="#2561cf" style="color:#FFFFFF"><strong>Tue</strong></td>
<td align="center" bgcolor="#2561cf" style="color:#FFFFFF"><strong>Wed</strong></td>
<td align="center" bgcolor="#2561cf" style="color:#FFFFFF"><strong>Thu</strong></td>
<td align="center" bgcolor="#2561cf" style="color:#FFFFFF"><strong>Fri</strong></td>
<td align="center" bgcolor="#2561cf" style="color:#FFFFFF"><strong>Sat</strong></td>
</tr>
<?php
$timestamp = mktime(0,0,0,$cMonth,1,$cYear);
$maxday = date("t",$timestamp);
$thismonth = getdate ($timestamp);
$startday = $thismonth['wday'];
for ($i=0; $i<($maxday+$startday); $i++) {
$day = ($i - $startday + 1);
if($day['1'] == '1' || $day['1'] == '2' || $day['1'] == '3' || $day['1'] == '4' || $day['1'] == '5' || $day['1'] == '6' || $day['1'] == '7' || $day['1'] == '8' || $day['1'] == '9'){
$day = '0'.$day;
}else{
$day = $day;
}
$date = $monthNames[$cMonth-1].' '.$day.', '.$cYear;
$date2 = $cMonth.'/'.$day.'/'.$cYear;
$events = $this->getEvents($date2);
if(($i % 7) == 0 ) echo "<tr>\n";
if($i < $startday) echo "<td></td>\n";
else echo "<td valign='top' align='left' width='50px' height='50px'><div class='".$dateId."' id='".$date."' title='".$date2."' style='cursor:pointer;'>". ($i - $startday + 1) .'</div>'. $events."</td>\n";
if(($i % 7) == 6 ) echo "</tr>\n";
}
?>
</table>
</td>
</tr>
</table>
虽然我不完全明白你在问什么,但我会尽力回答的 如果您希望当前使用PHP在变量中显示页面的所有内容,而不是使用echo,那么您需要将这些信息附加到变量中,因此
<?php
$timestamp = mktime(0,0,0,$cMonth,1,$cYear);
$maxday = date("t",$timestamp);
$thismonth = getdate ($timestamp);
$startday = $thismonth['wday'];
for ($i=0; $i<($maxday+$startday); $i++) {
$day = ($i - $startday + 1);
if($day['1'] == '1' || $day['1'] == '2' || $day['1'] == '3' || $day['1'] == '4' || $day['1'] == '5' || $day['1'] == '6' || $day['1'] == '7' || $day['1'] == '8' || $day['1'] == '9'){
$day = '0'.$day;
}else{
$day = $day;
}
$date = $monthNames[$cMonth-1].' '.$day.', '.$cYear;
$date2 = $cMonth.'/'.$day.'/'.$cYear;
$events = $this->getEvents($date2);
if(($i % 7) == 0 ) echo "<tr>\n";
if($i < $startday) echo "<td></td>\n";
else echo "<td valign='top' align='left' width='50px' height='50px'><div class='".$dateId."' id='".$date."' title='".$date2."' style='cursor:pointer;'>". ($i - $startday + 1) .'</div>'. $events."</td>\n";
if(($i % 7) == 6 ) echo "</tr>\n";
}
?>
会变成
<?php
$send_me_to_pdf = '';
$timestamp = mktime(0,0,0,$cMonth,1,$cYear);
$maxday = date("t",$timestamp);
$thismonth = getdate ($timestamp);
$startday = $thismonth['wday'];
for ($i=0; $i<($maxday+$startday); $i++) {
$day = ($i - $startday + 1);
if($day['1'] == '1' || $day['1'] == '2' || $day['1'] == '3' || $day['1'] == '4' || $day['1'] == '5' || $day['1'] == '6' || $day['1'] == '7' || $day['1'] == '8' || $day['1'] == '9'){
$day = '0'.$day;
}else{
$day = $day;
}
$date = $monthNames[$cMonth-1].' '.$day.', '.$cYear;
$date2 = $cMonth.'/'.$day.'/'.$cYear;
$events = $this->getEvents($date2);
if(($i % 7) == 0 ) $send_me_to_pdf .= "<tr>\n";
if($i < $startday) $send_me_to_pdf .= "<td></td>\n";
else $send_me_to_pdf .= "<td valign='top' align='left' width='50px' height='50px'><div class='".$dateId."' id='".$date."' title='".$date2."' style='cursor:pointer;'>". ($i - $startday + 1) .'</div>'. $events."</td>\n";
if(($i % 7) == 6 ) $send_me_to_pdf .= "</tr>\n";
}
?>
现在,您可以使用$send\u me\u to\u pdf作为pdf函数的参数,在其中发送数据?虽然我不完全理解您的问题,但我会尝试回答 如果您希望当前使用PHP在变量中显示页面的所有内容,而不是使用echo,那么您需要将这些信息附加到变量中,因此
<?php
$timestamp = mktime(0,0,0,$cMonth,1,$cYear);
$maxday = date("t",$timestamp);
$thismonth = getdate ($timestamp);
$startday = $thismonth['wday'];
for ($i=0; $i<($maxday+$startday); $i++) {
$day = ($i - $startday + 1);
if($day['1'] == '1' || $day['1'] == '2' || $day['1'] == '3' || $day['1'] == '4' || $day['1'] == '5' || $day['1'] == '6' || $day['1'] == '7' || $day['1'] == '8' || $day['1'] == '9'){
$day = '0'.$day;
}else{
$day = $day;
}
$date = $monthNames[$cMonth-1].' '.$day.', '.$cYear;
$date2 = $cMonth.'/'.$day.'/'.$cYear;
$events = $this->getEvents($date2);
if(($i % 7) == 0 ) echo "<tr>\n";
if($i < $startday) echo "<td></td>\n";
else echo "<td valign='top' align='left' width='50px' height='50px'><div class='".$dateId."' id='".$date."' title='".$date2."' style='cursor:pointer;'>". ($i - $startday + 1) .'</div>'. $events."</td>\n";
if(($i % 7) == 6 ) echo "</tr>\n";
}
?>
会变成
<?php
$send_me_to_pdf = '';
$timestamp = mktime(0,0,0,$cMonth,1,$cYear);
$maxday = date("t",$timestamp);
$thismonth = getdate ($timestamp);
$startday = $thismonth['wday'];
for ($i=0; $i<($maxday+$startday); $i++) {
$day = ($i - $startday + 1);
if($day['1'] == '1' || $day['1'] == '2' || $day['1'] == '3' || $day['1'] == '4' || $day['1'] == '5' || $day['1'] == '6' || $day['1'] == '7' || $day['1'] == '8' || $day['1'] == '9'){
$day = '0'.$day;
}else{
$day = $day;
}
$date = $monthNames[$cMonth-1].' '.$day.', '.$cYear;
$date2 = $cMonth.'/'.$day.'/'.$cYear;
$events = $this->getEvents($date2);
if(($i % 7) == 0 ) $send_me_to_pdf .= "<tr>\n";
if($i < $startday) $send_me_to_pdf .= "<td></td>\n";
else $send_me_to_pdf .= "<td valign='top' align='left' width='50px' height='50px'><div class='".$dateId."' id='".$date."' title='".$date2."' style='cursor:pointer;'>". ($i - $startday + 1) .'</div>'. $events."</td>\n";
if(($i % 7) == 6 ) $send_me_to_pdf .= "</tr>\n";
}
?>
现在,您可以使用$send_me_to_pdf作为pdf函数的参数,在其中发送数据?如果您有一大块HTML/PHP,并且需要将输出存储在变量中而不是打印到屏幕上,您可以使用函数来简化此过程:
<?php
ob_start(); // Start the buffer (nothing will be output)
?>
如果您有一大块HTML/PHP,并且需要将输出存储在变量中,而不是打印到屏幕上,则可以使用函数简化此过程:
<?php
ob_start(); // Start the buffer (nothing will be output)
?>
尝试浓缩变量
<?php
$var='
<table width="95%" height="95%">
<tr>
<td align="center">
<table width="100%" border="0" cellpadding="2" cellspacing="2">
<tr align="center">
<td colspan="7" bgcolor="#2561cf" style="color:#FFFFFF"><strong>'.$monthNames[$cMonth-1].' '.$cYear.'</strong></td>
</tr>
<tr>
<td align="center" bgcolor="#2561cf" style="color:#FFFFFF"><strong>Sun</strong></td>
<td align="center" bgcolor="#2561cf" style="color:#FFFFFF"><strong>Mon</strong></td>
<td align="center" bgcolor="#2561cf" style="color:#FFFFFF"><strong>Tue</strong></td>
<td align="center" bgcolor="#2561cf" style="color:#FFFFFF"><strong>Wed</strong></td>
<td align="center" bgcolor="#2561cf" style="color:#FFFFFF"><strong>Thu</strong></td>
<td align="center" bgcolor="#2561cf" style="color:#FFFFFF"><strong>Fri</strong></td>
<td align="center" bgcolor="#2561cf" style="color:#FFFFFF"><strong>Sat</strong></td>
</tr>';
?>
<?php
$timestamp = mktime(0,0,0,$cMonth,1,$cYear);
$maxday = date("t",$timestamp);
$thismonth = getdate ($timestamp);
$startday = $thismonth['wday'];
for ($i=0; $i<($maxday+$startday); $i++) {
$day = ($i - $startday + 1);
if($day['1'] == '1' || $day['1'] == '2' || $day['1'] == '3' || $day['1'] == '4' || $day['1'] == '5' || $day['1'] == '6' || $day['1'] == '7' || $day['1'] == '8' || $day['1'] == '9'){
$day = '0'.$day;
}else{
$day = $day;
}
$date = $monthNames[$cMonth-1].' '.$day.', '.$cYear;
$date2 = $cMonth.'/'.$day.'/'.$cYear;
$events = $this->getEvents($date2);
if(($i % 7) == 0 ) echo "<tr>\n";
if($i < $startday) echo "<td></td>\n";
$var.= "<td valign='top' align='left' width='50px' height='50px'><div class='".$dateId."' id='".$date."' title='".$date2."' style='cursor:pointer;'>". ($i - $startday + 1) .'</div>'. $events."</td>\n";
if(($i % 7) == 6 )
$var.="</tr>\n";
}
$var.=' </table>
</td>
</tr>
</table>';
?>
最终结果是$var尝试使用concating变量
<?php
$var='
<table width="95%" height="95%">
<tr>
<td align="center">
<table width="100%" border="0" cellpadding="2" cellspacing="2">
<tr align="center">
<td colspan="7" bgcolor="#2561cf" style="color:#FFFFFF"><strong>'.$monthNames[$cMonth-1].' '.$cYear.'</strong></td>
</tr>
<tr>
<td align="center" bgcolor="#2561cf" style="color:#FFFFFF"><strong>Sun</strong></td>
<td align="center" bgcolor="#2561cf" style="color:#FFFFFF"><strong>Mon</strong></td>
<td align="center" bgcolor="#2561cf" style="color:#FFFFFF"><strong>Tue</strong></td>
<td align="center" bgcolor="#2561cf" style="color:#FFFFFF"><strong>Wed</strong></td>
<td align="center" bgcolor="#2561cf" style="color:#FFFFFF"><strong>Thu</strong></td>
<td align="center" bgcolor="#2561cf" style="color:#FFFFFF"><strong>Fri</strong></td>
<td align="center" bgcolor="#2561cf" style="color:#FFFFFF"><strong>Sat</strong></td>
</tr>';
?>
<?php
$timestamp = mktime(0,0,0,$cMonth,1,$cYear);
$maxday = date("t",$timestamp);
$thismonth = getdate ($timestamp);
$startday = $thismonth['wday'];
for ($i=0; $i<($maxday+$startday); $i++) {
$day = ($i - $startday + 1);
if($day['1'] == '1' || $day['1'] == '2' || $day['1'] == '3' || $day['1'] == '4' || $day['1'] == '5' || $day['1'] == '6' || $day['1'] == '7' || $day['1'] == '8' || $day['1'] == '9'){
$day = '0'.$day;
}else{
$day = $day;
}
$date = $monthNames[$cMonth-1].' '.$day.', '.$cYear;
$date2 = $cMonth.'/'.$day.'/'.$cYear;
$events = $this->getEvents($date2);
if(($i % 7) == 0 ) echo "<tr>\n";
if($i < $startday) echo "<td></td>\n";
$var.= "<td valign='top' align='left' width='50px' height='50px'><div class='".$dateId."' id='".$date."' title='".$date2."' style='cursor:pointer;'>". ($i - $startday + 1) .'</div>'. $events."</td>\n";
if(($i % 7) == 6 )
$var.="</tr>\n";
}
$var.=' </table>
</td>
</tr>
</table>';
?>
最终的结果是$var可以尝试连接循环,只需将代码放入函数中。 前
可以尝试连接循环,将代码放入函数中。 前
你能再解释一下这个问题吗?我在这里看到了很多多余的代码。不需要其他的{$day=$day;}你能再解释一下这个问题吗?我在这里看到了很多多余的代码。不需要其他的{$day=$day;}它不再显示警告,但pdf输出是空的。听起来你有一个单独的问题需要一个新问题。如果您决定询问,请确保包含您的代码和您正在使用的PDF库。我还建议在你开始工作之前,只使用少量的样本数据,并检查你正在使用的工具的文档。它不再显示警告,但pdf输出是空的。听起来你有一个单独的问题需要一个新问题。如果您决定询问,请确保包含您的代码和您正在使用的PDF库。我还建议您在使用之前只使用少量的示例数据,并检查您正在使用的工具的文档。