0

後でスクリプトで使用できるように、このすべての情報を (テキストとして) 変数 $all に取得できるようにする必要があります。しかし、後で $all をエコーすると、機能しません。そして、フォントタグの使用について誰も何も言わないでください.私はあなたと同じようにそれについて落ち込んでいます.

   $all = <<< STOPTHISCRAZYTHING
    echo "<br><br><textarea rows=\"30\" cols = \"100\">";
    echo "<div align=\"center\"><font size=\"7\">I Have</font></div>";
    foreach($same as $match)
        {
        echo "<img src=\"" . $match . "\">";
        }
    echo "<div align=\"center\"><font size=\"7\">I Need</font></div>";
    foreach($different as $diff)
        {
        if(!in_array($diff, $reject))
        {
        echo "<img src=\"" . $diff . "\">";
        }
        }
    echo "<div align=\"center\"><font size=\"7\">I Am Unable To Obtain</font></div>";
    foreach($retired_different as $unabletoget)
        {
        echo "<img src=\"" . $unabletoget . "\">";
        }
    echo "</textarea>";
STOPTHISCRAZYTHING;
4

6 に答える 6

1

あなたは出力バッファリングを探しています:

ob_start(); // Start capturing the script's output

echo "<br><br><textarea rows=\"30\" cols = \"100\">";
echo "<div align=\"center\"><font size=\"7\">I Have</font></div>";
foreach($same as $match)
    {
    echo "<img src=\"" . $match . "\">";
    }
echo "<div align=\"center\"><font size=\"7\">I Need</font></div>";
foreach($different as $diff)
    {
    if(!in_array($diff, $reject))
    {
    echo "<img src=\"" . $diff . "\">";
    }
    }
echo "<div align=\"center\"><font size=\"7\">I Am Unable To Obtain</font></div>";
foreach($retired_different as $unabletoget)
    {
    echo "<img src=\"" . $unabletoget . "\">";
    }
echo "</textarea>";

$all = ob_get_flush(); // Stop capturing output, and store the output 
// that was captured up until now into the variable $all
于 2012-04-10T21:55:01.220 に答える
1

ループ構造をヒアドキュメント構文に埋め込むことはできません。foreach ループは次の外部で処理する必要があります。

$all = STOPTHISCRAZYTHING
    ...
STOPTHISCRAZYTHING;

編集:

「エコー」ステートメントについても同様です。ヒアドキュメントの割り当てで変数を使用できますが、ブロック全体が文字列割り当ての右側にあると考えることができます。PHP コマンドを実行するブロックではありません。

編集2:

あなたの例(その一部)を使用した有効な例を次に示します

    $all = <<< STOPTHISCRAZYTHING
        <br><br><textarea rows="30" cols ="100">
        <div align="center"><font size="7">I Have</font></div>
STOPTHISCRAZYTHING;

...必要なテキストを入力する方法に注意してください。エコーする必要はなく、引用符をエスケープする必要もありません。

ドキュメント: http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

乾杯

于 2012-04-10T21:45:28.127 に答える
1

何を言っているのかよくわかりませんIt's all messed up, though it's printed.が、問題なく印刷されているように見えますが、ブラウザにはレンダリングされたバージョンが表示されています。ソースコードを確認してください。

実際のテキストとして表示したい場合は、次のことを行う必要があります。

  • <pre>改行を保持するためにタグでラップします(またはnl2br()エコーする前に文字列で使用します)
  • etc. シンボルが html エンティティに変換されるhtmlspecialchars()ように、エコーする前に変数で使用します。<
于 2012-04-10T21:51:33.090 に答える
0

あなたがやろうとしていることは、ob_start() とその友達を使用することで達成できると思います。heredoc (<<<) は、引用符を使用せずに大きな文字列変数を作成するためのものです。ヒアドキュメント文字列内にコードやそのすべてを入れることはできません。

http://php.net/manual/en/function.ob-start.php

ob_start() を使用すると、印刷するすべてをバッファリングできます。次に、他の ob 関数を使用して、そのバッファリングされた出力を取得し、それを変数に配置するか、それでやりたいことは何でもできます。

于 2012-04-10T21:55:11.107 に答える
0

興味深いブラケット処理が行われています....

を使用する必要がありますHeredocか? 「。」を使用してすべてを変数に追加してみませんか。それらを連結する演算子。また、物事を単純化するために、一重引用符と二重引用符を組み合わせて使用​​できます。

$all = "<br><br><textarea rows='30' cols = '100'>";
$all = $all . "<div align='center'><font size='7'>I Have</font></div>";
foreach($same as $match)
{
    $all = $all . "<img src='" . $match . "'>";
}
$all = $all . "<div align='center'><font size='7'>I Need</font></div>";
foreach($different as $diff)
{
    if(!in_array($diff, $reject))
{
$all = $all . "<img src='" . $diff . "'>";
$all = $all . "<div align='center'><font size='7'>I Am Unable To Obtain</font></div>";
foreach($retired_different as $unabletoget)
{
    $all = $all . "<img src='" . $unabletoget . "'>";
}
$all = $all . "</textarea>";

$all 変数をエコーすると、必要な完全な出力が得られます

echo $all;
于 2012-04-10T21:58:07.550 に答える
-1

解決策A:

<?php
   $all = <<< STOPTHISCRAZYTHING
    echo "&lt;br&gt;&lt;br&gt;&lt;textarea rows=\"30\" cols = \"100\"&gt;";
    echo "&lt;div align=\"center\"&gt;&lt;font size=\"7\"&gt;I Have&lt;/font&gt;&lt;/div&gt;";
    foreach($same as $match)
        {
        echo "&lt;img src=\"" . $match . "\"&gt;";
        }
    echo "&lt;div align=\"center\"&gt;&lt;font size=\"7\"&gt;I Need&lt;/font&gt;&lt;/div&gt;";
    foreach($different as $diff)
        {
        if(!in_array($diff, $reject))
        {
        echo "&lt;img src=\"" . $diff . "\"&gt;";
        }
        }
    echo "&lt;div align=\"center\"&gt;&lt;font size=\"7\"&gt;I Am Unable To Obtain&lt;/font&gt;&lt;/div&gt;";
    foreach($retired_different as $unabletoget)
        {
        echo "&lt;img src=\"" . $unabletoget . "\"&gt;";
        }
    echo "&lt;/textarea&gt;";
STOPTHISCRAZYTHING;

echo $all;

?>

解決策B (使用htmlentities

<?php
   $all = <<< STOPTHISCRAZYTHING
    echo "<br><br><textarea rows=\"30\" cols = \"100\">";
    echo "<div align=\"center\"><font size=\"7\">I Have</font></div>";
    foreach($same as $match)
        {
        echo "<img src=\"" . $match . "\">";
        }
    echo "<div align=\"center\"><font size=\"7\">I Need</font></div>";
    foreach($different as $diff)
        {
        if(!in_array($diff, $reject))
        {
        echo "<img src=\"" . $diff . "\">";
        }
        }
    echo "<div align=\"center\"><font size=\"7\">I Am Unable To Obtain</font></div>";
    foreach($retired_different as $unabletoget)
        {
        echo "<img src=\"" . $unabletoget . "\">";
        }
    echo "</textarea>";
STOPTHISCRAZYTHING;

echo htmlentities($all);

?>

ソリューションC ( ...タグでラップ<pre></pre>) :

<?php
   $all = <<< STOPTHISCRAZYTHING
    <pre>
    echo "<br><br><textarea rows=\"30\" cols = \"100\">";
    echo "<div align=\"center\"><font size=\"7\">I Have</font></div>";
    foreach($same as $match)
        {
        echo "<img src=\"" . $match . "\">";
        }
    echo "<div align=\"center\"><font size=\"7\">I Need</font></div>";
    foreach($different as $diff)
        {
        if(!in_array($diff, $reject))
        {
        echo "<img src=\"" . $diff . "\">";
        }
        }
    echo "<div align=\"center\"><font size=\"7\">I Am Unable To Obtain</font></div>";
    foreach($retired_different as $unabletoget)
        {
        echo "<img src=\"" . $unabletoget . "\">";
        }
    echo "</textarea></pre>";
STOPTHISCRAZYTHING;

echo $all;

?>
于 2012-04-10T21:53:06.973 に答える