Foros del Web » Programando para Internet » PHP »

Medio apostrófe y medias comillas para parsear

Estas en el tema de Medio apostrófe y medias comillas para parsear en el foro de PHP en Foros del Web. Hola todos. Este rss feed: http://www.setanta.com/uk/Rss-Direct...Football-News/ Tiene caracteres como esto: ” “ ’ Cuando la clase simplepie lo parsea me convierte esos caracteres en: ? ...
  #1 (permalink)  
Antiguo 15/03/2009, 16:30
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 19 años, 6 meses
Puntos: 1
Medio apostrófe y medias comillas para parsear

Hola todos.
Este rss feed:
http://www.setanta.com/uk/Rss-Direct...Football-News/
Tiene caracteres como esto:



Cuando la clase simplepie lo parsea me convierte esos caracteres en:
?

Yo intento reemplazar con esto:
Código PHP:
$data=str_replace("‘","'",$data);
$data=str_replace("’","'",$data);
$data=str_replace("“",""",$data);
$data=str_replace("
”",""",$data); 
O con esto:
Código PHP:
$data=str_replace("’","'",$data);
$data=str_replace('“',""",$data);
$data=str_replace('”',"""
,$data); 
Pero nada... ni se entera que están ahí esos caracteres... me los sigue convirtiendo a ?
Tengo definido:
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
en mi página, o sea que el problema no está ahí.

Si alguien sabe y tiene un minuto gracias por adelantado

Ahora edito: no se muestran bien los caracteres aquí pero si miran el rss se darán cuenta.
  #2 (permalink)  
Antiguo 15/03/2009, 19:44
Avatar de gakutaru  
Fecha de Ingreso: agosto-2005
Ubicación: frente a mi NtbK
Mensajes: 239
Antigüedad: 18 años, 7 meses
Puntos: 6
Respuesta: Medio apostrófe y medias comillas para parsear

prueba esto
Código PHP:
<?php
$data 
"hay’muchas‘comas xD";
$data ereg_replace('’|‘',"'",$data); 
$data2 ', no ”las comas“estan malas';
$data2 ereg_replace('”|“','"',$data2); 
echo 
$data.$data2;
?>
  #3 (permalink)  
Antiguo 15/03/2009, 21:14
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: Medio apostrófe y medias comillas para parsear

Muchas gracias gakutaru.
Lo intenté pero por ese camino me convertía los apóstrofes en una cosa rara... algo como el signo del Euro con un TM

Buscando encontré esta función:
Código PHP:
function all_ascii$stringIn ){
   
$final '';
   
$search = array(chr(145),chr(146),chr(147),chr(148),chr(150),chr(151));
   
$replace = array("'","'",'"','"','-','-');

   
$hold str_replace($search[0],$replace[0],$stringIn);
   
$hold str_replace($search[1],$replace[1],$hold);
   
$hold str_replace($search[2],$replace[2],$hold);
   
$hold str_replace($search[3],$replace[3],$hold);
   
$hold str_replace($search[4],$replace[4],$hold);
   
$hold str_replace($search[5],$replace[5],$hold);

   if(!
function_exists('str_split')){
       function 
str_split($string,$split_length=1){
           
$count strlen($string);
           if(
$split_length 1){
               return 
false;
           } elseif(
$split_length $count){
               return array(
$string);
           } else {
               
$num = (int)ceil($count/$split_length);
               
$ret = array();
               for(
$i=0;$i<$num;$i++){
                   
$ret[] = substr($string,$i*$split_length,$split_length);
               }
               return 
$ret;
           }
       }
   }

   
$holdarr str_split($hold);
   foreach (
$holdarr as $val) {
       if (
ord($val) < 128$final .= $val;
   }
   return 
$final;

Y se aproxima mucho a la solución pero me remueve los apóstrofes y no entiendo por qué (remueve los apóstrofes invertidos char(145) y char(146), los otros nop).
Alguien puede explicarme ?
  #4 (permalink)  
Antiguo 16/03/2009, 07:18
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Respuesta: Medio apostrófe y medias comillas para parsear

podes hacer de estas 2 formas:

1) usando las barras '/' para que no reconosca como codigo las comillas

Código PHP:
<?php
$data
="‘hola‘viteh’.. jojojo  como estas  “hola mundo” "// texto de prueba
$data=str_replace("‘","'",$data);
$data=str_replace("’","'",$data);
$data=str_replace("“","\"",$data);
$data=str_replace("”","\"",$data);
echo 
$data;
?>
2) cambiando de comillas segun la que uses:

Código PHP:
<?php
$data
="‘hola‘viteh’.. jojojo  como estas  “hola mundo” "// texto de prueba
$data=str_replace("‘","'",$data);
$data=str_replace("’","'",$data);
$data=str_replace('“','"',$data);
$data=str_replace('”','"',$data);
echo 
$data;
?>
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  #5 (permalink)  
Antiguo 18/03/2009, 16:03
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: Medio apostrófe y medias comillas para parsear

Gracias chicos, ahora está funcionando
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 16:23.