liebewinter: html - pre tag nicht funzioniert mit html + php Code

Hallo , wenn schreibe auf meine datei ,

<pre>

 <nav class="link_wechsel">
      <h2 class="visually-hidden">Page navigation</h2>
      <ul>
        <li><a <?php if ($current_page=="autos"): ?>aria-current="page" <?php endif ?> href="beispiel-1.php">1</a></li>
        <li><a <?php if ($current_page=="essen"): ?>aria-current="page" <?php endif ?> href="beispiel-2.php">2</a></li>
        <li><a <?php if ($current_page=="haus"): ?>aria-current="page" <?php endif ?>  href="beispiel-3.php">3</a></li>
        
    </nav>
      


</pre>

Auf der Browser wird gezeigt die gebautet nav , aber nicht der Code wie geschrieben habe... , mit dem pre tag , funzioniert wenn nur Code gibt , ohne html.. ,was kann machen um die Code wird gezeigt wie Oben geschrieben habe... .

danke für eure Hilfe !

  1. hallo

    Hallo , wenn schreibe auf meine datei ,

    <pre>
    
     <nav class="link_wechsel">
          <h2 class="visually-hidden">Page navigation</h2>
          <ul>
            <li><a <?php if ($current_page=="autos"): ?>aria-current="page" <?php endif ?> href="beispiel-1.php">1</a></li>
            <li><a <?php if ($current_page=="essen"): ?>aria-current="page" <?php endif ?> href="beispiel-2.php">2</a></li>
            <li><a <?php if ($current_page=="haus"): ?>aria-current="page" <?php endif ?>  href="beispiel-3.php">3</a></li>
            
        </nav>
          
    
    
    </pre>
    

    Auf der Browser wird gezeigt die gebautet nav , aber nicht der Code wie geschrieben habe... , mit dem pre tag , funzioniert wenn nur Code gibt , ohne html.. ,was kann machen um die Code wird gezeigt wie Oben geschrieben habe... .

    Offensichtlich willst du html maskieren

    <  -> &lt;
    
    >  -> &gt;
    
    "  -> &quot;
    

    dazu gibt es in php eine funktion htmlspecialchars()

    https://secure.php.net/manual/en/function.htmlspecialchars.php

    1. danke für deinen Anwort !

      aber gibt es nicht eine möglichkeit ohne auf jeden < und > ,ersetzen mit &lt; und &gt; , gibt nicht eine tag , wie Beipiel pre , aber für html und php Code , wenn zusammen sind ?

  2. Das ist kein Wunder, denn wenn dem Browser HTML angekündigt wird (oder der Internet Explorer HTML erkennt), dann wird das auch wie HTML behandelt.

    Hilfe:

    Lege Dir eine DebugHelper.php an:

    
    <?php
    # File: DebugHelper.php
    
    function DebugHelperStart() {
    	echo '<pre class="DebugHelper">';
    	ob_start();
    }
    
    function DebugHelperEnd( $stop = true ) {
    	echo htmlspecialchars( ob_get_clean() );
    	echo '</pre>';
      if ( $stop ) {
         exit;
      }
    }
    ?><style>
    pre.DebugHelper {
       display: block;
       z-index:999;
       border: 3px solid red;
    }
    </style>
    

    Und dann ersetze Deine "<pre>" und "</pre>"-Tags in der zu untersuchenden Datei:

    <?php require_once 'DebugHelper.php'; DebugHelperStart(); ?>
    
     <nav class="link_wechsel">
          <h2 class="visually-hidden">Page navigation</h2>
          <ul>
            <li><a <?php if ($current_page=="autos"): ?>aria-current="page" <?php endif ?> href="beispiel-1.php">1</a></li>
            <li><a <?php if ($current_page=="essen"): ?>aria-current="page" <?php endif ?> href="beispiel-2.php">2</a></li>
            <li><a <?php if ($current_page=="haus"): ?>aria-current="page" <?php endif ?>  href="beispiel-3.php">3</a></li>
            
        </nav>
          
    <?php DebugHelperEnd( false ); ?>
    
    1. Vielen danke für deiner bemüht !

      ich habe gemacht alles wie du sagst , zwei datein , und habe auf ihnen deinen Code , aber bekomme dieser screenshot…

      nicht verendert..

      1. Ich bekomme mit:

        <?php
        
        function DebugHelperStart() {
        	echo '<pre class="DebugHelper">';
        	ob_start();
        }
        
        function DebugHelperEnd() {
        	echo htmlspecialchars( ob_get_clean() );
        	echo '</pre>';
        }
        ?><style>
        pre.DebugHelper {
           display: block;
           position:absolute;
           z-index:999;
           border: 3px solid red;
           padding:.5rem;
        }
        </style>
        
        <?php DebugHelperStart(); ?>
         <nav class="link_wechsel">
              <h2 class="visually-hidden">Page navigation</h2>
              <ul>
                <li><a <?php if (1): ?>aria-current="page" <?php endif ?> href="beispiel-1.php">1</a></li>
                <li><a <?php if (1): ?>aria-current="page" <?php endif ?> href="beispiel-2.php">2</a></li>
                <li><a <?php if (1): ?>aria-current="page" <?php endif ?>  href="beispiel-3.php">3</a></li>
                
            </nav>
        
        <?php DebugHelperEnd(); ?>
        

        erwartungsgemäß:

        Zeige bitte was Du getan hast.

        1. ja , ich habe auf meine /var/www/html , zwei Datein gespeichert..

          Eine , auf der DebugHelper.php habe gespeichert ;

          <?php
          # File: DebugHelper.php
          
          function DebugHelperStart() {
          	echo '<pre class="DebugHelper">';
          	ob_start();
          }
          
          function DebugHelperEnd( $stop = true ) {
          	echo htmlspecialchars( ob_get_clean() );
          	echo '</pre>';
            if ( $stop ) {
               exit;
            }
          }
          ?><style>
          pre.DebugHelper {
             display: block;
             z-index:999;
             border: 3px solid red;
          }
          </style>
          

          dann auf denn andere datei Links_wechsel.html habe;

          <?php require_once 'DebugHelper.php'; DebugHelperStart(); ?>
          
           <nav class="link_wechsel">
                <h2 class="visually-hidden">Page navigation</h2>
                <ul>
                  <li><a <?php if ($current_page=="autos"): ?>aria-current="page" <?php endif ?> href="beispiel-1.php">1</a></li>
                  <li><a <?php if ($current_page=="essen"): ?>aria-current="page" <?php endif ?> href="beispiel-2.php">2</a></li>
                  <li><a <?php if ($current_page=="haus"): ?>aria-current="page" <?php endif ?>  href="beispiel-3.php">3</a></li>
                  
              </nav>
                
          <?php DebugHelperEnd( false ); ?>
                  
          

          und hier ganze Code der auf Links_wechsel.html steht..

          <!doctype html>
          <html>
          <head>
          
          <meta http-equiv="content-type" content="text/html; charset=UTF-8">
            <title>Links_wechsel</title>
          <head>
          <style>
          
          body {
          
            background-color: #d2f5c4;
          }
          
          
          </style>
          
          
          
          <body>
          
          <h3>Mit Javascript</h3>
          
          <p>Lege der Code Javascript wo ich möchte gezeigt wird...</p>
          
          
          
          
          <pre>
          <p>&lt;script&gt;</p><br>
          function setAriaCurrentPage('currentURL')
          
              {
          
                  var currentURL = window.location.href;
           
          
           
          
           
          
                 for (let i = 0, i < document.links.length; i++)
          
          	    {
          
          		   if (document.links[i].href === 'currentURL')
          
          		   {
          
          			  document.links[i].setAttribute("aria-current", "page");
          
          			  document.links[i].setAttribute("tabindex", "0");
          
          			  document.links[i].removeAttribute("href");
                        
          		   }
          	    }
          
              }
          
          
          
          <p>&lt;/script&gt;</p><br>
          </pre>
          
          <p>....und in <b>CSS</b>  schreibe;</p>
          
          <pre>
          .link_wechsel a[aria-current=page] {
          
           
          
             background-color:green;
          
          }
          
          </pre>
          <p>
          Der <b>.link_wechsel</b> ist der namme Class , der ich auf meinr <b>nav</b> gegebe habe...
          </p>
          <p>Mein <b>nav</b> Code;</p>
          
          
          &lt;nav  <b>class="link_wechsel"</b>&gt;<br>
            &lt;ul&gt;<br>
              &lt;li&gt;&lt;a href="Beispiel-1.php"&gt;1&lt;/a&gt;&lt;/li&gt;<br>
              &lt;li&gt;&lt;a href="Beispiel-1.php"&gt;2&lt;/a&gt;&lt;/li&gt;<br>
              
            &lt;/ul&gt;<br>
          &lt;/nav&gt;<br>
          
          <p>The <b>aria-current</b> ist die <a href="https://www.w3schools.com/css/css_attribute_selectors.asp">Eingenschaft</a> und <b>page</b> ihrer Wert..</p>
          <br>
          <h3>Mit PHP</h3> 
          
          
          
          <?php require_once 'DebugHelper.php'; DebugHelperStart(); ?>
          
           <nav class="link_wechsel">
                <h2 class="visually-hidden">Page navigation</h2>
                <ul>
                  <li><a <?php if ($current_page=="autos"): ?>aria-current="page" <?php endif ?> href="beispiel-1.php">1</a></li>
                  <li><a <?php if ($current_page=="essen"): ?>aria-current="page" <?php endif ?> href="beispiel-2.php">2</a></li>
                  <li><a <?php if ($current_page=="haus"): ?>aria-current="page" <?php endif ?>  href="beispiel-3.php">3</a></li>
                  
              </nav>
                
          <?php DebugHelperEnd( false ); ?>
                  
          
                
          </body>
          </html>
          
          1. Mahlzeit,

            dann auf denn andere datei Links_wechsel.html habe;

            Bist du sicher, dass eine .html-Datei als PHP ausgeführt wird? Wenn nicht, wird das PHP als Text an den Browser geliefert.

            --
            42
            1. hast du recht ..., jetzt habe meine Datei namme Links_wechsel.html von Links_wechsel.php verendert , ganz oben habe geschrieben;

              <?php
              
              header('Content-Type: text/html; Charset=utf-8');
               mb_internal_encoding('UTF-8');
               date_default_timezone_set('UTC');
               error_reporting(E_ALL);
              ?>
              

              und jetzt bekomme...

              bekomme der php Code...

              Danke !

              1. Das sieht aber nach Murks aus. Wenn PHP nicht ausgeführt wird (Das ist es, was Du willst), dann wird auch

                <?php
                
                header('Content-Type: text/html; Charset=utf-8');
                 mb_internal_encoding('UTF-8');
                 date_default_timezone_set('UTC');
                 error_reporting(E_ALL);
                ?>
                

                nicht ausgeführt. Schau also im Browser in den Quelltext!

                Und dann meine Lösung für Quelltextausschnitte an.

          2. Ok. Du willst etwas ganz anderes.

            Der einfachste Weg dürfte folgendes sein:

            Schneide den Code aus Deiner Datei heraus und speichere ihn als 'code.00001.txt'

             <nav class="link_wechsel">
                  <h2 class="visually-hidden">Page navigation</h2>
                  <ul>
                    <li><a <?php if ($current_page=="autos"): ?>aria-current="page" <?php endif ?> href="beispiel-1.php">1</a></li>
                    <li><a <?php if ($current_page=="essen"): ?>aria-current="page" <?php endif ?> href="beispiel-2.php">2</a></li>
                    <li><a <?php if ($current_page=="haus"): ?>aria-current="page" <?php endif ?>  href="beispiel-3.php">3</a></li>
                    
                </nav>
            

            An der selben Stelle:

            <pre class="codeblock">
            <?=htmlspecialchars( file_get_contents( 'code.00001.txt' ) ); ?>
            </pre>
            

            oder:

            <?php
                highlight_file( 'code.00001.txt' );
            ?>
            

            Das kannst Du auch mit Javascript machen.

  3. @@ liebewinter

    Was hast du vor? Du willst HTML-Code auf einer Webseite zeigen?

    Dann musst du zumindest die < escapen:

    <pre><code>&lt;nav class="link_wechsel">
      &lt;h2 class="visually-hidden">Page navigation&lt;/h2>
    &lt;/nav></code></pre>
    

    LLAP 🖖

    --
    „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
    1. vilen danke für deinen bemüht !

      ich habe auf meine code ähnliches wie deine Code ;

      <pre><code>&lt;nav class="link_wechsel">
            &lt;h2 class="visually-hidden">Page navigation&lt;/h2>
            &lt;ul>
              &lt;li>&lt;a <?php if ($current_page=="autos"): ?>aria-current="page" <?php endif ?> href="beispiel-1.php">1&lt;/a>&lt;/li>
              &lt;li>&lt;a <?php if ($current_page=="essen"): ?>aria-current="page" <?php endif ?> href="beispiel-2.php">2&lt;/a>&lt;/li>
              &lt;li>&lt;a <?php if ($current_page=="haus"): ?>aria-current="page" <?php endif ?>  href="beispiel-3.php">3&lt;/a>&lt;/li>
              
      &lt;/nav></code></pre>
      

      und das der screenshot der ich bekomme;

      der Code drück

      so , wie er zeigt ist sehr ähnlicher wie deine... aber der Code PHP wird nicht gezeigt...

      Was hast du vor? Du willst HTML-Code auf einer Webseite zeigen?

      ich versuche eine Datei zu bauen wo ich schreibe , was ich lernen , dann Später einfacher finde wenn eine Probleme bekomme...

      1. aber der Code PHP wird nicht gezeigt

        Das geht auch nicht. Der wird auf dem Server schon abgearbeitet. Wenn Du den PHP-Code sehen willst und es kompliziert machen willst, dann verbinde Dich via ssh mit dem Server und verlinke (oder kopiere) die PHP-Datei zu einer Datei mit der Endung '.phps',

        ln seite.php seite.phps
        

        Öffne dann nicht http://example.com/seite.php sondern http://example.com/seite.phps.

        Oder sieh Dir gleich den Quelltext in Deinem Editor an.

        1. ich habe der namme von der Datei Links_wechsel.html und nach Links_wechsel.php verendert , ganz oben habe geschrieben;

          <?php
          
          header('Content-Type: text/html; Charset=utf-8');
           mb_internal_encoding('UTF-8');
           date_default_timezone_set('UTC');
           error_reporting(E_ALL);
          ?>
          

          und jetzt bekomme…

          bekomme der php Code

          Vielllll danke für deinen bemüht !

          und genießen das Leben ! , ich meints es weil du , Gunnar und Rolf sind immer hier und Leben gibt es nur EINS... ☺️

          ich wünsche alle euch einen schöne Wochenende !

      2. @@ liebewinter

                &lt;li>&lt;a <?php if ($current_page=="autos"): ?>aria-current="page" <?php endif ?> href="beispiel-1.php">1&lt;/a>&lt;/li>
        

        […] aber der Code PHP wird nicht gezeigt...

        Da sind ja auch noch < drin. Wie das Bärchen schon sagte, wird der PHP-Code dann schon auf dem Server ausgeführt.

        Du willst

                &lt;li>&lt;a &lt;?php if ($current_page=="autos"): ?>aria-current="page" &lt;?php endif ?> href="beispiel-1.php">1&lt;/a>&lt;/li>
        

        und vielleicht auch noch einen Syntax-Highlighter wie Prism?

        LLAP 🖖

        --
        „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
        1. ich habe auch früher versucht .. aber meine fehler war , das ich mit <pre> versucht habe , deshalb habe nicht bekomme…

          wie ich Früher geschrieben habe...

           &lt;li>&lt;a &lt;pre> &lt;?php if ($current_page=="1"): ?>aria-current="page" &lt;?php endif ?> href="beispiel-1.php">1&lt;/a>&lt;/li>&lt;/pre>