Ir para conteúdo

POWERED BY:

Arquivado

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

rafinhaphp

str_replace() em tempo real

Recommended Posts

salve galera... seguinte eu desenvolvi um sistema de BB code com o str_replace() ..

até ai tudo bem...

 

mas eu quero melhorar meu script...

 

quero q o str_replace mude os bbcode em tempo real!

 

 

seria assim ó:

 

<div id="editor"  CONTENTEDITABLE >
aqui vai o codigo
</div>

ai quando digitar um "" por exp, o script jah troca por "<b>"

Compartilhar este post


Link para o post
Compartilhar em outros sites

ai galera... seguinte eu consegui montar isso aqui ó... mas é em JS e eu ñ quero fz em JS quero que seja PHP....

 

 

<script type="text/javascript" language="JavaScript">
s1 = new String(myForm.myText.value)
function changeVal() {
alert(document.getElementById('editor').innerHTML);
}
</script>

<div id="editor"  CONTENTEDITABLE name="myText" onKeyDown="changeVal()">
aqui vai o codigo
</div>

 

esse script fz tudo... pega o valor, e execulta a função sempre que é digitado um caractere.....

mas ta faltando o replace agora... e como eu fiz em JS ñ da pra misturar com o PHP né?

Compartilhar este post


Link para o post
Compartilhar em outros sites

str_replace do PHP escrito em JavaScript

 

function str_replace(search,replace,subject){
	var s=subject;
	var ra=r instanceof Array,sa=s instanceof Array;
	var f=[].concat(search);
	var r=[].concat(replace);
	var i=(s=[].concat(s)).length;
	var j=0;
	while(j=0,i--){
		if(s[i]){
			while(s[i]=(s[i]+'').split(f[j]).join(ra?r[j]||"":r[0]),++j in f){};
		}
	}
	return sa?s:s[0];
}

 

source: http://phpjs.org/packages/view/4

autor: http://kevin.vanzonneveld.net/techblog/art...pjs_namespaced/

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa.. valew manu...

 

mas ai? ñ da pra fz ao contrario.... transforma tudo em PHP...

 

porq eu ñ quero que fique em JS ñ, eu ainda ñ estou estudando JS....

 

 

-quando apertar alguma tecla

-eu preciso pegar o conteudo da div(em php)

-fazer o replace (em php)

-escrever o conteudo de volta na DIV (em php)

Compartilhar este post


Link para o post
Compartilhar em outros sites

php roda no servidor

javascript roda no cliente

 

Javascript trata eventos HTML, onclick, onchange, onblur, onkeypress

php só vai rodar se você fizer uma requisição. Enviar um formulário, clicar num link, recarregar uma página..

 

Em tempo real, não é possível fazer com apenas php. Não é o escopo dessa linguagem.

Oque você está querendo, é a mesma coisa de tentar fazer em CSS um player de uma webrádio que normalmente e facilmente seria feito em Flash.

Compartilhar este post


Link para o post
Compartilhar em outros sites

putsss... eu jah imaginava isso mesmo!

 

mas é aquilo... eu to tentando usar menos JS porq ñ manjo quaz nada... e se der erro, ai lasca tudo!

 

ta... mas intom da pra fz apenas o replace em php né? só ñ sei como "mesclar" o script php nesse JS

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao precisa usar php.. apenas javascript

 

pra você ter uma noção do que está dizendo,

 

seria como pegar um objeto que está na sua frente, dar a volta ao mundo e colocar do seu lado.

 

ou fazer um telefonema internacional, trafegando fora do país, para que a ligação chegue na casa do seu vizinho.

 

entendeu ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

intom... eu to ligado com oq vcs taum falando.. eu até concordo ... mas o problema é q eu to com um array enorme em php... onde tem as tag e os bbcode.. ai pra isso vo ter que fz um novvo array pro JS.. por isso q eu queria fz só o replace em php saks? pra ñ ter que fz o array em JS...rsrsrsrs

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara... faça o seguinte:

 

//junte o array numa string atraves de um caractere que você tem ctza que nao existe nos arrays...
			$string_codes = implode ("*", $array);

 

 

passe essa string pro javascript

 

no java script:

 

<code>  var array_codes = strings_codes.split("*");</code>

 

simples e indolor http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

versão com PHP

<?php

$codes = array(
	 '[b]' => '<b>',
	 '[/b]' => '</b>',
	 '[i]' => '<i>',
	 '[/i]' => '</i>',
	 '[li]' => '<li>',
  );


$str = <<<TXT
	[li]Ipsum lorem
	[li][b]foo[/b] [i]bar[/i]
TXT;


echo str_replace( array_keys( $codes ), array_values( $codes ), $str );
?>
para interagir com javascript use ajax

Compartilhar este post


Link para o post
Compartilhar em outros sites

complementando o que o henrique mostrou,

ficaria assim em javascript

 

 

<?php


$codes = array(
	 '[b]' => '<b>',
	 '[/b]' => '</b>',
	 '[i]' => '<i>',
	 '[/i]' => '</i>',
	 '[li]' => '<li>',
  );


$str = <<<TXT
	[li]Ipsum lorem
	[li][b]foo[/b] [i]bar[/i]
TXT;

function foo( $str ){
	return str_replace( PHP_EOL, '<br>', $str );
}

//echo str_replace( array_keys( $codes ), array_values( $codes ), $str ); exit;
?>

<script type=text/javascript>

function str_replace(search,replace,subject){
	var s=subject;
	var ra=r instanceof Array,sa=s instanceof Array;
	var f=[].concat(search);
	var r=[].concat(replace);
	var i=(s=[].concat(s)).length;
	var j=0;
	while(j=0,i--){
		if(s[i]){
			while(s[i]=(s[i]+'').split(f[j]).join(ra?r[j]||"":r[0]),++j in f){};
		}
	}
	return sa?s:s[0];
}


bbcs = "<?php echo implode( ',', array_keys( $codes ) );?>".split(',');
tags = "<?php echo implode( ',', array_values( $codes ) );?>".split(',');

str  = "<?php echo foo( $str );?>";

document.write( 'original<br>' );
document.write( str );

document.write( '<hr>bb-coded<br>' );
document.write( str_replace( bbcs, tags, str ) );
</script>

aí você escolhe o que realmente quer usar

Compartilhar este post


Link para o post
Compartilhar em outros sites

pow galera... vcs são d+ veio.. é issso mesmo...

mas uma duvida.. o ajax? pode ser considerado outra linguagem? ou oq é?

 

eu nunk intendo oq é ajax! rsrsrs

só me lembra o nome de um amaciante de roupas... kkkkkk

Compartilhar este post


Link para o post
Compartilhar em outros sites

AJAX é Javascript, mas com um conceito diferente.

Não é uma outra linguagem.. mas uma forma de usar Javascript e XML, fazendo requisições assincronas ao servidor(sem precisar recarregar toda a página).

 

Tem um subfórum de Ajax aqui no iMasters... dá uma olhada.

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.