Foros del Web » Programando para Internet » PHP »

Html ASCII to CHAR

Estas en el tema de Html ASCII to CHAR en el foro de PHP en Foros del Web. Buenas tardes: He tenido un dolor de cabeza todo el día tratando de codificar un texto que se genera desde un editor de texto. Lo ...
  #1 (permalink)  
Antiguo 29/04/2015, 13:04
Avatar de BLAH !!  
Fecha de Ingreso: septiembre-2003
Ubicación: Región Metropolitana, Santiago, Chile
Mensajes: 706
Antigüedad: 20 años, 7 meses
Puntos: 16
Html ASCII to CHAR

Buenas tardes:

He tenido un dolor de cabeza todo el día tratando de codificar un texto que se genera desde un editor de texto.

Lo que estoy tratando de realizar es guardar lo que el usuario escriba en el editor de texto en mi base de datos mysql.

El problema está en que el editor me genera texto como ASCII HTML
EJ:
Código HTML:
Veamos como funcionaria esto app:<br><br><ol> <li>tengo que tratar</li> <li>de codificar</li> <li>esto</li></ol> 
Mi problema es que la base de datos solo guarda hasta que empiezan los "&", por lo que estoy tratando de codificar todo el texto generado por texteditor y transformarlo en CHAR ( caracteres "<", ">", "(", "/", etc...) pero no he logrado efectuarlo para que mi bd lo guarde.

Alguien tiene alguna solucion ?
he visto unos códigos de
  1. iconv()
  2. pasar todo a UTF-8
  3. html_entity_decode()

Siend la última (html_entity_decode()) la supuesta opcion pero aun asi no me funciona.
Alguna sugerencia ?
__________________
Adios ...!!!!
  #2 (permalink)  
Antiguo 29/04/2015, 13:07
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Html ASCII to CHAR

Es curioso porque precisamente html_entity_decode() resuelve las cadenas que muestras:
Código PHP:
Ver original
  1. $txt = 'Veamos como funcionaria esto app:&lt;br&gt;&lt;br&gt;&lt;ol&gt; &lt;li&gt;tengo que tratar&lt;/li&gt; &lt;li&gt;de codificar&lt;/li&gt; &lt;li&gt;esto&lt;/li&gt;&lt;/ol&gt;';
  2.  
  3. var_dump($txt);
  4.  

El resultado:
Cita:
string(172) "Veamos como funcionaria esto app:&lt;br&gt;&lt;br&gt;&lt;ol&gt; &lt;li&gt;tengo que tratar&lt;/li&gt; &lt;li&gt;de codificar&lt;/li&gt; &lt;li&gt;esto&lt;/li&gt;&lt;/ol&gt;"

string(112) "Veamos como funcionaria esto app:<br><br><ol> <li>tengo que tratar</li> <li>de codificar</li> <li>esto</li></ol>"
Si lo que dices es cierto entonces tu caso es único en el universo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 29/04/2015, 15:28
Avatar de BLAH !!  
Fecha de Ingreso: septiembre-2003
Ubicación: Región Metropolitana, Santiago, Chile
Mensajes: 706
Antigüedad: 20 años, 7 meses
Puntos: 16
Respuesta: Html ASCII to CHAR

Ya se cual es el error.... que básico.

Estoy abriendo otro php (enviando las variables via GET con javascript)....
y pensándolo un poco más detenidamente, al momento en que a la variable TEXTO (que es donde aparece todo lo creado por TEXTEDITOR) tiene una & en el valor de la variable, javascript lo va a interpretar como una nueva variable

EJ:

var txt = Veamos como funcionaria esto app:&lt;br&gt;&lt;br&gt;&lt;ol&gt; &lt;li&gt;tengo que tratar&lt;/li&gt; &lt;li&gt;de codificar&lt;/li&gt; &lt;li&gt;esto&lt;/li&gt;&lt;/ol&gt; ;

document.getElementById('id').src = "nuevo.php?titulo="+titulo+"&texto="+txt

por lo tanto según este llamado por GET a nuevo.php, como txt tiene en su valor signos & , JS lo interpreta como nueva variable.

SINTESIS:
1. DEBO HACER LO MISMO QUE html_entity_decode() PERO EN JS
2. ANTES DE ESCRIBIR EN EL FORO ES BUENO DARLE UNA QUINTA VUELTA A LOS TEMAS
3. ME EQUIVOQUE DE FORO (AHORA SE TRANSFORMO EN PROBLEMA JS)
4. GRACIAS POR TU AYUDA pateketrueke !
__________________
Adios ...!!!!
  #4 (permalink)  
Antiguo 29/04/2015, 17:03
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Html ASCII to CHAR

En todo caso si la cadena de texto contiene símbolos especiales debes usar encodeURIComponent() y del lado de PHP ya no hay que hacer nada.

Y sí, el problema entonces siempre fue de Javascript.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 29/04/2015, 18:48
 
Fecha de Ingreso: marzo-2015
Mensajes: 183
Antigüedad: 9 años, 1 mes
Puntos: 8
Respuesta: Html ASCII to CHAR

Si envías datos a través del método GET y entre tus datos enviás algunos con el carácter "&" este está reservado para el uso de variables; no puedes hacer uso de ello.
Un truco sería reemplazar todos los "&" por otro carácter de manera temporal.
EJM: Javascript

var variable1="B&L Asociados E&L";
alert(variable1.replace(/[&]/g,"<%AMP"));

EJM: PHP

Desde php convertimos los caracteres "<%AMP" en "&"

$variable1=str_replace("<%AMP","&",$_GET['variable1']);

Espero haberte dado una idea, es el truco que uso, si te parece molesto hacer todos estos cambios para cada variable te recomiendo usar una función que te permita ese cambio para todas tus variables que tengan caracteres especiales.

Saludos.
  #6 (permalink)  
Antiguo 30/04/2015, 08:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Html ASCII to CHAR

Cita:
Iniciado por oggy_15_3 Ver Mensaje
Espero haberte dado una idea, es el truco que uso, si te parece molesto hacer todos estos cambios para cada variable te recomiendo usar una función que te permita ese cambio para todas tus variables que tengan caracteres especiales.
Un truco totalmente innecesario y redundante, emplear encodeURIComponent() es lo correcto y no hay que inventarse nada.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 30/04/2015, 10:37
 
Fecha de Ingreso: marzo-2015
Mensajes: 183
Antigüedad: 9 años, 1 mes
Puntos: 8
Respuesta: Html ASCII to CHAR

Cita:
Iniciado por pateketrueke Ver Mensaje
Un truco totalmente innecesario y redundante, emplear encodeURIComponent() es lo correcto y no hay que inventarse nada.
Sí, tienes razón sólo basta usar encodeURIComponent() en javascript para pasar ciertos caracteres especiales a php. Ingoré por completo esa función

Etiquetas: ascii, char, html, mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:55.