PHP mehrzeiliger String mit PHP

Lesezeit: 4 Minuten

Benutzer-Avatar
Matt

Ich muss viel PHP und HTML wiederholen.

Ich habe bereits das Offensichtliche versucht, aber es funktioniert nicht:

<?php echo '
<?php if ( has_post_thumbnail() ) {   ?>
      <div class="gridly-image"><a href="https://stackoverflow.com/questions/12534836/<?php the_permalink() ?>"><?php the_post_thumbnail('summary-image', array('class' => 'overlay', 'title'=> the_title('Read Article ',' now',false) ));?></a>
      </div>
      <?php }  ?>

      <div class="date">
      <span class="day">
        <?php the_time('d') ?></span>
      <div class="holder">
        <span class="month">
          <?php the_time('M') ?></span>
        <span class="year">
          <?php the_time('Y') ?></span>
      </div>
    </div>
    <?php }  ?>';
?>

Wie kann ich es tun?

  • Versuchen Sie buchstäblich, PHP-Code zu wiederholen?

    – generisch

    21. September 2012 um 16:57 Uhr

  • Abgesehen von den offensichtlichen Problemen mit den Anführungszeichen ohne Escapezeichen sollten Sie auch alle <- und >-Tags in ihren entsprechenden HTML-Code konvertieren < >

    – transsilvlad

    22. September 2012 um 0:23 Uhr

  • Die meisten Leute, die diese Frage stellen, würden nach HEREDOC suchen. Vielleicht möchten Sie diese Antwort akzeptieren.

    – Archonisch

    30. April 2015 um 17:48 Uhr

Sie müssen nicht ausgeben php Stichworte:

<?php 
    if ( has_post_thumbnail() ) 
    {
        echo '<div class="gridly-image"><a href="'. the_permalink() .'">'. the_post_thumbnail('summary-image', array('class' => 'overlay', 'title'=> the_title('Read Article ',' now',false) )) .'</a></div>';
    }

    echo '<div class="date">
              <span class="day">'. the_time('d') .'</span>
              <div class="holder">
                <span class="month">'. the_time('M') .'</span>
                <span class="year">'. the_time('Y') .'</span>
              </div>
          </div>';
?>

  • Internet, du überraschst mich jeden Tag :)*

    – Numabyte

    2. Februar 2021 um 7:27 Uhr

Benutzer-Avatar
Markus B

Sie können keinen PHP-Code innerhalb eines solchen Strings ausführen. Es funktioniert einfach nicht. Auch wenn Sie keinen PHP-Code mehr haben (?>), jeder Text außerhalb der PHP-Blöcke wird ohnehin als Ausgabe betrachtet, daher besteht keine Notwendigkeit für die echo Aussage.

Wenn Sie eine mehrzeilige Ausgabe mit einem Stück PHP-Code machen müssen, ziehen Sie die Verwendung von a in Betracht HEREDOC:

<?php

$var="Howdy";

echo <<<EOL
This is output
And this is a new line
blah blah blah and this following $var will actually say Howdy as well

and now the output ends
EOL;

Benutzer-Avatar
Noel

Verwenden Sie Heredocs, um mehrzeilige Zeichenfolgen auszugeben, die Variablen enthalten. Die Syntax ist …

$string = <<<HEREDOC
   string stuff here
HEREDOC;

Der “HEREDOC”-Teil ist wie die Anführungszeichen und kann alles sein, was Sie wollen. Das End-Tag muss das einzige Element in seiner Zeile sein, dh kein Leerzeichen davor oder danach, und muss mit einem Doppelpunkt enden. Für mehr Information schau dir mal das handbuch an.

Benutzer-Avatar
hitautodestruct

Verwenden Sie die Doppelpunktnotation

Eine andere Möglichkeit wäre die Verwendung von if mit Doppelpunkt (:) und ein endif Anstelle der Klammern:

<?php if ( has_post_thumbnail() ): ?>
    <div class="gridly-image">
        <a href="<?php the_permalink(); ?>">
        <?php the_post_thumbnail('summary-image', array('class' => 'overlay', 'title'=> the_title('Read Article ',' now',false) )); ?>
        </a>
    </div>
<?php endif; ?>

<div class="date">
    <span class="day"><?php the_time('d'); ?></span>
    <div class="holder">
        <span class="month"><?php the_time('M'); ?></span>
        <span class="year"><?php the_time('Y'); ?></span>
    </div>
</div>

Der interne Satz einfacher Anführungszeichen in Ihrem Code tötet die Zeichenfolge. Immer wenn Sie auf ein einfaches Anführungszeichen treffen, wird die Zeichenfolge beendet und die Verarbeitung fortgesetzt. Sie möchten so etwas wie:

$thisstring = 'this string is long \' in needs escaped single quotes or nothing will run';

Benutzer-Avatar
Peter Mortensen

Dazu müssen Sie alle entfernen ' Zeichen in Ihrem String oder verwenden Sie ein Escape-Zeichen. Wie:

<?php
    echo '<?php
              echo \'hello world\';
          ?>';
?>

Benutzer-Avatar
Peter Mortensen

Verwenden Sie die show_source(); Funktion von PHP. Weitere Einzelheiten finden Sie unter show_source. Dies ist eine bessere Methode, denke ich.

1245420cookie-checkPHP mehrzeiliger String mit PHP

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy