<pre>

Enviada por Silvano Girardi Jr. 
Silvano Girardi Jr.
<pre>
20 de November de 2003 às 12:41PM
João, teria como colocar um "<pre>" nas mensagens do fórum? ou então algo parecido com o que acontece nos comentários do php.net que o código aparece como em um show_source. A identação toda se perde quando postamos algo :(

[z]
Joao Prado Maia
Re: &lt;pre&gt;
20 de November de 2003 às 08:14PM
Se você conseguir a façanha que é arrumar uma regular expression que rode highlight_str() somente no codigo PHP numa string qualquer, claro :)

Algo assim já estava na minha TODO list, mas não é algo trivial.

--Joao
Marcelo Pereira
Re: &lt;pre&gt;
21 de November de 2003 às 12:23AM
realmente ia ajudar pacas...

aliás eu já dou até umas viajadas assim

pensava em algo como uma tabela especial (hehe) para mostrar o código com pontilhado e tudo mais!
Silvano Girardi Jr.
Re: &lt;pre&gt;
21 de November de 2003 às 01:29AM
Esta função parece funcionar bem, por favor, corrija-me se estiver errado:

<?php
// Use class names instead of colors
ini_set('highlight.comment', 'comment');
ini_set('highlight.default', 'default');
ini_set('highlight.keyword', 'keyword');
ini_set('highlight.string', 'string');
ini_set('highlight.html', 'html');


// Highlight PHP code
function highlight_php($code, $return = FALSE)
{
// Using OB, as highlight_string() only supports
// returning the result from 4.2.0
ob_start();
highlight_string($code);
$highlighted = ob_get_contents();
ob_end_clean();

// Fix output to use CSS classes and wrap well
$highlighted = '<div class="phpcode">' . str_replace(
array(
'<br />',
'<font color="',
'</font>',
"\n ",
'&nbsp;&nbsp;'
),
array(
"<br />\n",
'<span class="',
'</span>',
"\n&nbsp;",
'&nbsp; '
),
$highlighted
) . '</div>';

if ($return) { return $highlighted; }
else { echo $highlighted; }
}
?>

e os estilos:

/* PHP code syntax highlighting */
div.phpcode span.html {
color: black;
}

div.phpcode span.comment {
color: #FF8000;
}

div.phpcode span.default {
color: #0000BB;
}

div.phpcode span.keyword {
color: #007700;
}

div.phpcode span.string {
color: #DD0000;
}

[z]
Rodrigo Romano Moreira
Re: &lt;pre&gt;
01 de December de 2003 às 07:40PM
Achei a tal expressão João , tudo em uma linha .
A solução está aqui :
http://chat.culturabh.com.br/teste/show.php

Mas tem um bug .Se o texto possuir dois codigos distintos ,ele só imprimi o ultimo, mais já é um começo .
Rodrigo Romano Moreira
Re: &lt;pre&gt;
01 de December de 2003 às 08:27PM
http://chat.culturabh.com.br/teste/show2.php

Não é um expressão regular ,mais é uma solução em poucas linhas.

Tem um pequeno erro ,mais dá corrigir.
Marcelo Pereira
Re: &lt;pre&gt;
02 de December de 2003 às 01:33AM
Rodrigo,

você que escreveu este função ?
Rodrigo Romano Moreira
Re: &lt;pre&gt;
02 de December de 2003 às 01:42AM
O primeiro codigo não ,é do phpbuilder .
http://www.phpbuilder.com/lists/php-general/2003031/1906.php
Rodrigo Romano Moreira
Re: &lt;pre&gt;
02 de December de 2003 às 01:52PM
Não primeiro exemplo que enviei ,se eu encontrar um jeito da maquina do regexp parar na primeira ocorrencia.Dá usar uma função recursiva no resto.
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.