[FX.php List] Risks in multi-line echo statement?
Gjermund Gusland Thorsen
ggt667 at gmail.com
Thu Oct 26 02:47:48 MDT 2006
This would be my approach:
$col[] = '<td align="right">Field A: </td>';
$col[] = '<td>' . $value['FieldA'][0] . '</td>';
$row[] = '<tr>' . implode( "\n\t\t", $col ) . '</tr>';
unset( $col );
$col[] = '<td align="right">Field B: </td>';
$col[] = '<td>'.$value['FieldB'][0].'</td>';
$row[] = '<tr>' . implode( "\n\t\t", $col ) . '</tr>';
unset( $col );
$table = '<table>' . implode( "\n\t", $row ) . '</table>';
echo $table;
ggt667
On 10/25/06, Joel Shapiro <jsfmp at earthlink.net> wrote:
> Thanks Chris, that's great! I'd never heard of heredoc.
>
> looking at its php.net documentation lead me to the echo()
> documentation, which includes:
>
> echo <<<END
> This uses the "here document" syntax to output
> multiple lines with $variable interpolation. Note
> that the here document terminator must appear on a
> line with just a semicolon. no extra whitespace!
> END;
>
> (so you're right, you don't need to store the heredoc in a variable)
>
> it also includes:
>
> echo "This spans
> multiple lines. The newlines will be
> output as well";
>
> (which I guess answers my original question)
>
> Best,
> -Joel
>
>
> On Oct 25, 2006, at 11:08 AM, Chris Hansen wrote:
>
> > Joel,
> >
> > Use heredoc syntax. This would like like the following:
> >
> > $myText = <<<MY_TEXT
> > <table>
> > <tr>
> > <td align="right">Field A: </td>
> > <td>{$value['FieldA'][0]}</td>
> > </tr>
> > <tr>
> > <td align="right">Field B: </td>
> > <td>{$value['FieldB'][0]}</td>
> > </tr>
> > </table>
> > MY_TEXT;
> >
> > echo($myText);
> >
> > Note that like double quotes, your variables can go right inside
> > the block. Also, heredoc is designed to work with multi-line
> > blocks of text. The PHP online docs have more details:
> >
> > http://www.php.net/manual/en/
> > language.types.string.php#language.types.string.syntax.heredoc
> >
> > Lots of folks aren't aware of this string syntax, but it's a gem in
> > my opinion. (You may be able to echo the heredoc block directly
> > rather than storing it first -- I don't use it that way though.) HTH
> >
> > --Chris Hansen
> > FileMaker 7 Certified Developer
> > Creator of FX.php
> > "The best way from FileMaker to the Web."
> > www.iViking.org
> >
> >
> > On Oct 25, 2006, at 11:51 AM, Joel Shapiro wrote:
> >
> >> Hi all
> >>
> >> Quick php formatting question:
> >>
> >> Are there any risks to using a single echo statement with multiple
> >> lines inside the quotes, as follows?
> >>
> >> echo ' // START ECHO
> >> <table>
> >> <tr>
> >> <td align="right">Field A: </td>
> >> <td>'.$value['FieldA'][0].'</td>
> >> </tr>
> >> <tr>
> >> <td align="right">Field B: </td>
> >> <td>'.$value['FieldB'][0].'</td>
> >> </tr>
> >> </table>
> >> '; // END ECHO
> >>
> >> I think it was on this list where people once discussed various
> >> ways of switching between html and php code. This way *seems* to
> >> be a way to keep the html looking like html (both in the initial
> >> code, and in the browser's view source), but without needing lots
> >> of echo statements (1 per line), or using "\n", or having to use <?
> >> php echo $value['FieldA'][0]; ?> each time within straight html.
> >> I've looked elsewhere online and haven't found other examples of
> >> this, so I'm wondering if there's a good reason for that.
> >>
> >> TIA,
> >> -Joel
> >> _______________________________________________
> >> FX.php_List mailing list
> >> FX.php_List at mail.iviking.org
> >> http://www.iviking.org/mailman/listinfo/fx.php_list
> >>
> >
> > _______________________________________________
> > FX.php_List mailing list
> > FX.php_List at mail.iviking.org
> > http://www.iviking.org/mailman/listinfo/fx.php_list
>
> _______________________________________________
> FX.php_List mailing list
> FX.php_List at mail.iviking.org
> http://www.iviking.org/mailman/listinfo/fx.php_list
>
More information about the FX.php_List
mailing list