Diskuze: zvyrayneni syntaxe

PHP PHP zvyrayneni syntaxe American English version English version

Avatar
bob_skate
Člen
Avatar
bob_skate:

Ahoj,
snazim se nacist externi soubor .html, a potom za pomoci regularnich vyrazu obarvit nektere tagy <p> na modro atd.

<?php

        function highlight_file_with_line_numbers($file) {//prevest do textu
            $code = substr(highlight_file($file, true), 36, -15);
            $lines = explode('<br />', $code);
            echo "<code><span style=\"color: #000000\">";
            //Loop lines
            foreach ($lines as $i => $line) {
                $htmlRow = preg_replace('(&lt;h([1-6])&gt;(.*?)&lt;/h\1&gt;)e', '"<h$1 style=color:red>" . strtoupper("$2") . "</h$1>"', $lines[$i]);
                echo $htmlRow;
            }

            //Close span
            echo "</span></code>";
        }

        $file = "./index.html";
        highlight_file_with_line_numbers($file);
        ?>

Místo toho mi to ten kod provede, jak to predelat? dekuji za rady

 
Odpovědět 23.5.2015 11:00
Avatar
Odpovídá na bob_skate
Michal Šmahel (ceskyDJ):

Kód máš vysvětlený, jen si ho uprav, aby četl soubory a přidej si další tagy a globální akci.

<?php
         function highlight_file_with_line_numbers() {
             //Kód pro ukázku, odstavec nebude fungovat, musel bys mu vytvořit další preg_replace
             $code = "
<h1>Nadpis</h1>
<h2>Nadpis 2</h2>
<h3>Nadpis 3</h3>
<p>Odstavec</p>
                     ";
             //Rozdělení po řádcích
             $lines = explode('<br />', $code);
             //Určení, že se jedná o kód a nastavení výchzí barvy na černou
             echo "<code><span style=\"color: #000000\">";
             //Obarvení nastavených tagů
             foreach ($lines as $i => $line) {
                 //Nahrazení
                 $htmlRow = preg_replace('(<h([1-6])>(.*?)</h\1>)', '<span style="color: red;">&lt;h\1&gt;\2&lt;/h\1&gt;</span><br />', $lines[$i]);
                 //Sem můžeš přidat preg_replace pro další tag
                 //Výpis
                 echo $htmlRow;
             }
             echo "</span></code>";
         }
         //Zavolání funkce
         highlight_file_with_line_numbers();
?>
Nahoru Odpovědět 23.5.2015 13:02
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.