Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rodrigo5468

Pular linha

Recommended Posts

Olá,

 

Fiz um sistema de BBCode ele funciona e tudo... porem quando eu faço uma postagem ou algo do tipo ele não pula linha, como faço pra ele pular linha? eu tentei usar o \n porem não vai.

 

BBCode

<?php
function bbcode($input){
	$input = strip_tags($input);
	$input = htmlentities($input);
	
	$search = array (
		'/\[b\](.*?)\[\/b\]/is',
		'/\[i\](.*?)\[\/i\]/is',
		'/\[u\](.*?)\[\/u\]/is',
		'/\[s\](.*?)\[\/s\]/is',
		'/\[left\](.*?)\[\/left\]/is',
		'/\[center\](.*?)\[\/center\]/is',
		'/\[right\](.*?)\[\/right\]/is',
		'/\[img\](.*?)\[\/img\]/is',
		'/\[url=(.*?)\](.*?)\[\/url\]/is'
	);
	
	$replace = array (
		'<b>$1</b>',
		'<i>$1</i>',
		'<u>$1</u>',
		'<s>$1</s>',
		'<left>$1</left>',
		'<center>$1</center>',
		'<right>$1</right>',
		'<img src="$1">',
		'<a href="$1">$2</a>',
	);
	
	return preg_replace($search,$replace,$input);
}
?>

Este código é do BBCode, porem quando eu tento pular uma linha por echo ou pelo método post que fiz não vai... e sem o código pula normalmente.

No método que aparece os post e que pula as linhas sem o bbcode incluído é assim:

$breakline = preg_replace("/\r\n|\r/", "<br />", $content);
$breakline = trim($breakline);

E quando tento colocar o $breakline = bbcode($breakline); quando coloco isso depois de $breakline = trim($breakline); o bbcode funciona porem as linhas que deveriam pular não pulam mais. O que eu faço?

 

 

Desde já obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo, é que eu fiz um sistema de post... ele funciona corretamente pula linha e tudo, está funcionando perfeitamente. Porem eu fiz um sistema de BBCode ele envia dados da SQL para o index. Porem quando eu dou um require_once no bbcode.php e coloco $breakline = bbcode($breakline); o código continua funcionando, porem as linhas que deveriam ser puladas elas não pulam.

 

FPKXtJ8.png

 

É isso que acontece, o que eu faço pra arrumar? Acho que o problema está dentro do código do BBCode más o que? Eu não faço a minima ideia já tentei colocar o nl2br no $input mais nada...

foreach($fetch as $row) {
$id        = $row->id;
$content   = $row->content;
$breakline = nl2br($content);
$breakline = bbcode($breakline);
$breakline = trim($breakline);

Quando eu comento a linha do bbcode ele funciona pulando as linhas, más se eu deixar sem ele não funciona.

 

 

Obrigado desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Peguei sua função e fiz este teste:

 

 

$str = <<<EOF
[b]negrito[/b]
[i]italico[/i]
EOF;
 
var_dump(bbcode($str));
var_dump(nl2br(bbcode($str)));

 

Saída:

 


$ php test.php
string(29) "<b>negrito</b>
<i>italico</i>"
string(35) "<b>negrito</b><br />
<i>italico</i>"

 

Testei no terminal. Veja que a quebra de linha está lá, sim. Mas ela é um "\n". Só vai virar tag <br> se usar nl2br(), que usei no segundo var_dump

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.