и highlight_string - PullRequest
       1

и highlight_string

0 голосов
/ 21 ноября 2011

Я хочу отобразить код в браузере вместо его выполнения, поэтому я использую highlight_string,

<?php highlight_string('function foo(items) {
    for (var i=0; i<items.length; i++) {
        alert(items[i] + "juhu");
    }   // Real Tab.
}')?>

,

<code><span style="color: #000000"> function&nbsp;foo(items)&nbsp;{ <br />&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(var&nbsp;i=0;&nbsp;i&lt;items.length;&nbsp;i++)&nbsp;{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(items[i]&nbsp;+&nbsp;"juhu"); <br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Real&nbsp;Tab. <br />}</span> </code>

<code>

Но я после новые строки без <br/> с,

<code><span style="color: #000000">

function&nbsp;foo(items)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(var&nbsp;i=0;&nbsp;i&lt;items.length;&nbsp;i++)&nbsp;{

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(items[i]&nbsp;+&nbsp;"juhu");

&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Real&nbsp;Tab.

}</span>

</code>

Возможно ли это?

Ответы [ 2 ]

1 голос
/ 21 ноября 2011

Вы должны иметь возможность заменить каждый тег <br /> обычными переносами строк (\ r \ n) и вывести свою строку, например:

<code>$data = highlight_string('function foo(items) {
for (var i=0; i<items.length; i++) {
    alert(items[i] + "juhu");
}   // Real Tab.
}',true);
 $data = str_replace('<br />',"\r\n",$data);
 echo '<pre>';
 echo $data;
 echo '
';
0 голосов
/ 21 ноября 2011

почему бы вам не попробовать создать пользовательскую функцию. Получите строку в качестве параметра, взорвите строку с помощью 'return', используйте функцию highlight_string для подстрок в цикле, а затем объедините все подстроки, чтобы сформировать нужную строку.

...