Bienvenido a la sección de Preguntas y Respuestas, donde puedes plantear tus dudas e inquietudes técnicas y recibir respuestas de otros miembros de la comunidad. Si deseas consultar el foro anterior puedes hacerlo a través del enlace: Foro Anterior (Solo Lectura)

PHP pasa el caracter ' como si enmarcara el texto y no como parte del texto

0 positivos 0 negativos
233 vistas
Saludos a todos,

Hoy se me presentó un error cuando actualizaba unos registros. La página y actualización de los registros funcionan correctamente, sin embargo, cuando tengo una comilla como parte del texto que estoy actualizando,

El texto que esta siendo actualizado esta en inglés. Ej: We've released a new version ...

PHP me devuelve un error reconociendo ese caracter comilla en el "We've" como si estuviera encerrando el texto y no como parte del mismo: 've released a new version'

He intentado encontrar alguna forma de poder pasar ese caracter como parte del texto, pero no he encontrado nada hasta el momento. Conocen ustedes cómo puedo pasar esta comilla como parte del texto (contracciones de frases en inglés) y no como parte del código o comienzo/cierre del texto?

Gracias de antemano por la ayuda e información!
preguntado por luisdb (15 puntos) Dic 10, 2014 en Discusión General

2 Respuestas

0 positivos 0 negativos

¡Hola Luis!

Lo más seguro es que necesites sanear tu texto. La función addslahes puede ser lo que andes buscando. ¿Qué versión de php utilizas?

Igual si puedes colocar el pedazo de tu código que está fallando sería mucho mejor.

Espero te sea útil.

Saludos.

 

 

respondido por joseayram (159 puntos) Dic 16, 2014
0 positivos 0 negativos
\'  :  esto no es fin de definicion de  string;
'   :  esto es fin de string cuando mi string inicia y culmina con comillas simples:

ejemplo:
<?php
$string1 = "We've";  # todo bien por que estoy colocando una comilla simple dentro de comillas dobles.
$string2 = 'We've';   # error.

para sanar el error podria usar:
$string3 = 'We\'ve';
o definir mi string con comillas dobles y dentro de el usar comillas simples.

si es por sql (no tengo idea deberias aportar tu codigo para analizarlo) puedes usar:

    final static public function cleanSQL($arg){
        $replace[0]= "<'>";
        $replace[1]="<\">";
        $byText [0]= "''";
        $byText [1]= "\"\"";
        return preg_replace($replace,$byText,$arg);
    }

pero supongo que usas mysql nativo y no PDO.  Esto serviria para sanar un sql.
respondido por flaviosalas (47 puntos) Dic 17, 2014

El tema con esto Flavio, es que si recibes los datos por formulario no puedes pedirle al usuario que haga eso, es por ello que existe la función http://php.net/manual/en/function.addslashes.php

Reditado:

Opps! No había leído bien que colocaste una función allí. Lo siento. 

 

 

...