PDA

Ver la Versión Completa : [ code ] problemas con tag [ / code ]


gatsu
24-08-2004, 08:26:03
Bueno, tengo una duda de lo mas sencilla pero que no se solucionar.
Me gustaria saber cómo hacer para que a la hora de insertar en una base de datos, reemplazar los símbolos del formulario (textarea)
el < por &lt; y > por &gt;
me explico?
es decir, que quiero poner bbcode en mi web y quiero que cuando la gente ponga [ code ] codigo [ / code ] , lo que haya entre los dos tags, se reemplace por su equivalente en html.

Espero haberme explicado.
Gracias de antemano.
Gatsu Studios (http://studios.clangatsu.com)

roman
24-08-2004, 15:40:48
Lo que te conviene es usar expresiones regulares. En PHP hay varias funciones para ello, como preg_replace.

// Saludos

gatsu
25-08-2004, 10:02:17
... vale, algun ejemplo de ello?

kayetano
25-08-2004, 11:35:57
Hola

Copiado y pegado del manual de php.

string ereg_replace ( string pattern, string replacement, string string)

$string = "This is a test";
echo ereg_replace( " is", " was", $string );
echo ereg_replace( "( )is", "\\1was", $string );
echo ereg_replace( "(( )is)", "\\2was", $string );

gatsu
25-08-2004, 11:52:46
vale, ya lo he cojido.
Muchas gracias cayetano :)
Ahora, la segunda parte de la duda ^^
digamos que esto seria para hacer el BBcode no?
Entonces, necesito un a cosa que empiece y otra que limite, eso se hace con
[ code] (aqui empezariamos a substituir) [ /code ] aqui acabamos.
Solamente quiero que el codifgo de ereg_replace( " is", " was", $string );
afecte a lo que hay entre [ code ] [ / code ]
Lo entendeis?
osea, que no afecte a todo.
espero haberme explicado :)
Atte: Gatsu Studios (http://studios.clangatsu.com)

kayetano
25-08-2004, 13:51:09
hola

Me he perdido :)

Lo que tu quieres es convertir esto:

esto es un texto de ejemplo


por :

<code>esto es un texto de ejemplo</code>

lo que tienes que hacer es

$str = "esto es un texto de ejemplo";
$strCambio = ereg_replace( "", " <code>", $str );
$strCambio = ereg_replace( "", " </code>", $str );

por ejemplo.

Esto no te asegura que exista el tag de apertura y de cierre, simplemente te reemplaza uno por el otro.

gatsu
26-08-2004, 06:47:05
No, no me has entendido,
Quiero que
[ code ] [ /code ]
se reemplace por el [ code ] del BBcode xD
no el tag < code >
Me entiendees?

kayetano
26-08-2004, 07:33:07
Hola


es decir, que quiero poner bbcode en mi web y quiero que cuando la gente ponga [ code ] codigo [ / code ] , lo que haya entre los dos tags, se reemplace por su equivalente en html.
Me había confundido esto de "equivalente en html".

Desconozco el equivalente en BBcode, pero dudo que sea mucho más complicado.

jachguate
26-08-2004, 09:46:16
lo que haya entre los dos tags, se reemplace por su equivalente en html.
...
No, no me has entendido,
Quiero que
[ code ] [ /code ]
se reemplace por el [ code ] del BBcode xD
no el tag < code >

:confused:

O sea que no queres ni una cosa, ni la otra, sino totalmente lo contrario. :confused: ???

gatsu
26-08-2004, 11:08:41
será posible...

a ver, yo no quiero que me haga etiqueta < code > que eso ya se hacerlo.
Quiero que cuando en mi sistema la gente ponga:
[ code ] < b > hola< /b > <br> simbolo & [ /code ]
en mi web salga
(una tabla y en el html que ponga:)
&lt;b&gt; hola&lt;/b&gt; &lt;br&gt; simbolo &amp;
(fin tabla)
entonces en el html pone eso y la impresion en pantalla se ve lo que ellos han puesto.
Aun no lo entendeis¿?
Será que me explico muy mal...
atte:Gatsu Studios (http://studios.clangatsu.com)

kayetano
26-08-2004, 11:21:37
Hola

bueno, tate tranquilo :)

En primer lugar hacer algo asin:

$str = "esto es un texto de ejemplo";
$strCambio = ereg_replace( "", " <table><tr><td>", $str );
$strCambio = ereg_replace( "", " </td></tr></table>", $str );

para cambiar caracteres a formato html puedes mirar la funcion
get_html_translation_table()

gatsu
26-08-2004, 12:10:33
eeh
ese kayetano que me entiende xD
Asi me gusta,
Muchisimas gracias.
Atte:Gatsu Studios (http://studios.clangatsu.com)