Ir para conteúdo

POWERED BY:

Arquivado

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

Marcos Germano

[Resolvido] Escapar Aspas do Word

Recommended Posts

E ai galera, procurei bastante sobre isso e não encontrei solução...

 

É o seguinte, eu preciso escapar as aspas do Word(eu acho).

 

As aspas da qual estou falando são essas: “Cidade Digital”

 

Já usei addslashes(), str_replace, htmlentities, mas ele nao escapa essa porcaria. Será que alguém pode me ajudar ??

 

Nem copiando ela do texto e colocando no str_replace ele substitui, como se não reconhecesse, addslashes() passa batido...não sei como resolver.

Compartilhar este post


Link para o post
Compartilhar em outros sites

manda um var_dump(), provavelmente essas aspas do WORD, são um outro caracter especial, e não aspas mesmo, dessas q você digita com o teclado.

 

copia e cola, e ai você faz replace dela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O var_dump mostrou o mesmo caractere que eu copiava para tentar dar o replace.

 

"...beneficiadas com internet grátis no “Cidade Digital” em Vicentina. "

 

Tentei dessas duas formas e nada. Já tentei expressão regular também mas esse troço só pode ser do capeta.

Já tentei sem barra de escape, e nada.

 

$string = str_replace("\“", '\"',$string);//"direita
$string = str_replace("\”", '\"',$string);//"esquerda

$string = str_replace("“", 'teste',$string);//"esquerda
$string = str_replace("”", 'teste',$string);//"direita

 

Olha, eu não resolvi mas achei algo que ajuda.

 

Ele remove os caracteres não-ascii e converte os ascii, como aquelas aspas não foram reconhecidas, ele remove-as.

 

 

/**
* Remove any non-ASCII characters and convert known non-ASCII characters
* to their ASCII equivalents, if possible.
*
* @param string $string
* @return string $string
* @author Jay Williams <myd3.com>
* @license MIT License
* @link http://gist.github.com/119517
*/
function convert_ascii($string)
{
 // Replace Single Curly Quotes
 $search[] = chr(226).chr(128).chr(152);
 $replace[] = "'";
 $search[] = chr(226).chr(128).chr(153);
 $replace[] = "'";

 // Replace Smart Double Curly Quotes
 $search[] = chr(226).chr(128).chr(156);
 $replace[] = '"';
 $search[] = chr(226).chr(128).chr(157);
 $replace[] = '"';

 // Replace En Dash
 $search[] = chr(226).chr(128).chr(147);
 $replace[] = '--';

 // Replace Em Dash
 $search[] = chr(226).chr(128).chr(148);
 $replace[] = '---';

 // Replace Bullet
 $search[] = chr(226).chr(128).chr(162);
 $replace[] = '*';

 // Replace Middle Dot
 $search[] = chr(194).chr(183);
 $replace[] = '*';

 // Replace Ellipsis with three consecutive dots
 $search[] = chr(226).chr(128).chr(166);
 $replace[] = '...';

 // Apply Replacements
 $string = str_replace($search, $replace, $string);

 // Remove any non-ASCII Characters
 $string = preg_replace("/[^\x01-\x7F]/","", $string);

 return $string;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mesmo com var_dump(), o que você vai ver na tela é aquilo que o browser interpretou para aquela entidade HTML.

 

O que você deve ver é o source da página, e ver se aquilo que você enxerga como aspa (& quot; - sem o espaço) pode ser outra coisa.

 

Nessa tabela, por exemplo, existem seis tipos de aspas diferentes.

 

O seu str_replace() adereçou duas delas: & ldquo; e & rdquo; (sem espaços) e aquilo que elas representam.

 

Enfim... Posta também a forma como está recebendo esse arquivo Word no PHP.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu copiei do código fonte aquele caractere. não aparece a entidade html dela, é como se fosse um simbolo nao reconhecido.

 

Mas a função que eu postei anteriormente já me ajudou, não substituiu por aspas duplas comuns (& quot;)mas removeu ela, agora eu consigo gerar o XML.

 

Esse texto eu estou pegando via file_get_content() de uma página que lista notícias.

Trabalho elas e gravo em um arquivo XML. Só que o arquivo não estava sendo gerado por conta daquela aspa.

 

Mas valeu ai, acho que está resolvido o problema por enquanto.

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.