Foros del Web » Programando para Internet » PHP »

Caracteres especiales

Estas en el tema de Caracteres especiales en el foro de PHP en Foros del Web. Hola, tengo en la base de datos unos textos que me los da un flash y con php los guarde a la base... ahora modificando ...
  #1 (permalink)  
Antiguo 06/12/2010, 15:37
Avatar de johnnygomez  
Fecha de Ingreso: octubre-2007
Mensajes: 166
Antigüedad: 16 años, 6 meses
Puntos: 0
Caracteres especiales

Hola, tengo en la base de datos unos textos que me los da un flash y con php los guarde a la base... ahora modificando un poco la funcionalidad, veo que hay textos que tienen saltos de linea, y yo los veo mirando directamnete la base, a lo que en un principio hice un str_replace de \n por '', pero el salto de linea seguia estando y el retorno de acarreo tambien... con los textos estos estoy generando imagenes con las funciones de php, pero los textos que tienen salto de linea me quedan mal las imagenes, busque por internet y encontre que con la funcion trim puedo quitar tambien los caracteres especiales, a lo que puse

trim($texto, "\x00..\x1F");

y me siguio armando mal la imagen. a lo que cree un script que me modificaba toda la base, levantando el vlaor del texto, ejecutando esa funcion trim y haciendo update de ese valor... pero en la base me sigue quedando el salto de linea... que otros caracteres especiales hay? no logro entender que puede ser ya que con esa funcion trim y el rango que le puse teoricamente deberia de sacar absolutamente todos los caracteres especiales... espero su respuesta.
__________________
Quien no encuentra ninguna falla en sí mismo, necesita una segunda opinión.
  #2 (permalink)  
Antiguo 06/12/2010, 15:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Caracteres especiales

sería bueno ver alguno de los valores que tienes en la BD, intenta convertir cada carácter en su ordinal, y así lo muestras aquí para analizarlo... (:
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 06/12/2010, 15:41
Avatar de johnnygomez  
Fecha de Ingreso: octubre-2007
Mensajes: 166
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Caracteres especiales

gracias por la rapida respuesta, pateketrueke.. como hago para convertirlo en su ordinal?
__________________
Quien no encuentra ninguna falla en sí mismo, necesita una segunda opinión.
  #4 (permalink)  
Antiguo 06/12/2010, 15:48
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Caracteres especiales

Cita:
Iniciado por johnnygomez Ver Mensaje
gracias por la rapida respuesta, pateketrueke.. como hago para convertirlo en su ordinal?
digamos que ya tienes dicha cadena en una variable:
Código PHP:
for ($i 0$i strlen($cadena); ++$i)
{
  echo 
'&#' ord(substr($cadena$i1)) . ';';

ahí esta colocado como entidad, sin embargo, es el valor que necesitas analizar...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 06/12/2010, 15:55
Avatar de johnnygomez  
Fecha de Ingreso: octubre-2007
Mensajes: 166
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Caracteres especiales

muchas gracias, mira, no se bien para que sirve el '&#', antes que me respondas utilice el magico ctrl+barra y encontre esa misma funcion (ord) e hice que me imprima 'caracter - ordinal' y veo que luego de cada palabra imprimer el 32 que deduzco que es el espacio, y luego en donde ocurre el problema no me imprime nada e imprime el nro 13 que corresponde al retorono de carro... pero como dije esto teoricamente me los quitaba el trim... que otra manera hay de quitarlo? ya probe con el ejemplo que puse y con \r pero es como si no me hiciese caso... igualmente desde ya muchas gracias por ayudarme a destrabarme de este lio...
__________________
Quien no encuentra ninguna falla en sí mismo, necesita una segunda opinión.
  #6 (permalink)  
Antiguo 06/12/2010, 15:57
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Caracteres especiales

trim solo quitara al principio y al final, si tu cadena tiene "enters" en medio, trim los omitirá
  #7 (permalink)  
Antiguo 06/12/2010, 16:10
Avatar de johnnygomez  
Fecha de Ingreso: octubre-2007
Mensajes: 166
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Caracteres especiales

Gracias, volvi a hacer entonces lo que habia hecho en un principio
$texto = str_replace('\r','',$texto);
y miro sus ordinales y me sigue quedando el 13 en el lugar que hay un salto de linea... hay alguna manera de en vez de poner '\r' indique el 13?
__________________
Quien no encuentra ninguna falla en sí mismo, necesita una segunda opinión.
  #8 (permalink)  
Antiguo 06/12/2010, 16:14
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Caracteres especiales

en primer lugar debes usar comillas dobles para que interprete el \r, con comillas sencillas se toma textual...

ahora, también puedes usar chr() que es el inverso de ord()
http://php.net/chr
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 06/12/2010, 16:21
Avatar de johnnygomez  
Fecha de Ingreso: octubre-2007
Mensajes: 166
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Caracteres especiales

Millones de gracias... la verdad es que fue un error mio grueso.. gralmente uso comillas dobles y hace poco comence a usar comillas simples, se la diferencia pero no me habia dado cuenta que con los caracteres especiales la flashaba tambien... mil gracias!!!!!!
__________________
Quien no encuentra ninguna falla en sí mismo, necesita una segunda opinión.

Etiquetas: caracteres, especiales, linea, salto
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 19:18.