una ultimo str_replace remove recorrer quitar parte palabra eliminar caracteres caracter cadena buscar php

ultimo - Eliminar caracteres extraños de la cadena PHP



remove html tags php (12)

Sí, esto no está funcionando para mí. ¿Cuál es la solución para esto? - Vaichidrewar 12 de marzo a las 22:29

Agregue esto al encabezado HTML (o modifíquelo si ya existe):

//Remove from a single line string $output = "Likening ‘not-critical’ with"; $output = preg_replace(''/[^(/x20-/x7F)]*/'','''', $output); echo $output; //Remove from a multi-line string $output = "Likening ‘not-critical’ with /n Likening ‘not-critical’ with /r Likening ‘not-critical’ with. '' ! -."; $output = preg_replace(''/[^(/x20-/x7F)/x0A/x0D]*/'','''', $output); echo $output;

Esto codificará los caracteres divertidos como "-" en UTF-8 para que la función str_replace() los interprete correctamente.

O puedes hacer esto:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

esto es lo que tengo ahora

Al dibujar una fuente RSS en el php, se lee el xml sin procesar de la fuente rss:

Paul&#8217;s Confidence

El php que tengo hasta ahora es este.

$newtitle = $item->title; $newtitle = utf8_decode($newtitle);

Lo anterior vuelve;

Paul?s Confidence

Si elimino el utf_decode, obtengo esto

Paul’s Confidence

Cuando intento un str_replace;

$newtitle = str_replace("&#8221;", "", $newtitle);

No funciona, me sale;

Paul’s Confidence

¿Alguna idea?


¿La configuración de codificación de caracteres para su servidor PHP es diferente a UTF-8? Si es así, ¿hay alguna razón o podría cambiarse a UTF-8? Aunque no almacenamos datos en UTF-8 en nuestra base de datos, descubrí que configurar el conjunto de caracteres del servidor web en UTF-8 parece ayudar a resolver los problemas de los conjuntos de caracteres.

Me interesaría escuchar las opiniones de otros acerca de esto ... si me estoy configurando para problemas al configurar el servidor web en UTF-8 mientras almaceno los datos enviados en Latin1 en nuestra base de datos mysql. Sé que hubo una razón por la que elegí Latin1 para la base de datos, pero no puedo recordar de qué se trataba. Curiosamente, nuestra configuración actual parece permitir la entrada de caracteres que no son UTF-8 y el procesamiento posterior ... ¿parece que almacenar en Latin1 no impide la decodificación y visualización subsiguientes de todos los caracteres UTF-8?


Esta es mi función que siempre funciona, independientemente de la codificación:

function RemoveBS($Str) { $StrArr = str_split($Str); $NewStr = ''''; foreach ($StrArr as $Char) { $CharNo = ord($Char); if ($CharNo == 163) { $NewStr .= $Char; continue; } // keep £ if ($CharNo > 31 && $CharNo < 127) { $NewStr .= $Char; } } return $NewStr; }

Cómo funciona:

echo RemoveBS(''Hello õhowå åare youÆ?''); // Hello how are you?


Esto eliminará todos los caracteres no-ascii / caracteres especiales de una cadena.

ini_set(''default_charset'', ''utf-8'');



No funciona. Necesitas usar $ arr1 = str_split ($ str), luego foreach y echo ($ arr1 [$ k]) Esto te mostrará exactamente qué caracteres están escritos en la cadena.



Resolví el problema. Parece ser una solución corta en lugar del problema mayor, pero funciona.

$newtitle = str_replace(''’'', "''", $newtitle);

También encontré este fragmento útil que puede ayudar a otros con el mismo problema;

<? $find[] = ''“''; // left side double smart quote $find[] = ''â€''; // right side double smart quote $find[] = ''‘''; // left side single smart quote $find[] = ''’''; // right side single smart quote $find[] = ''…''; // elipsis $find[] = ''—''; // em dash $find[] = ''–''; // en dash $replace[] = ''"''; $replace[] = ''"''; $replace[] = "''"; $replace[] = "''"; $replace[] = "..."; $replace[] = "-"; $replace[] = "-"; $text = str_replace($find, $replace, $text); ?>

Gracias a todos por su tiempo y consideración.


Sólo una solución simple.

Si su cadena contiene este tipo de caracteres extraños, suponga que $text contiene algunos de estos, simplemente haga lo que se muestra a continuación:

$mytext=mb_convert_encoding($text, "HTML-ENTITIES", ''UTF-8'')

y funcionará ..


Una solución super simple es decodificar los caracteres cuando se carga la página

Simplemente copie / pegue lo siguiente al principio del script

header(''Content-Type: text/html; charset=UTF-8''); mb_internal_encoding(''UTF-8''); mb_http_output(''UTF-8''); mb_http_input(''UTF-8''); mb_regex_encoding(''UTF-8'');

Referencia: http://php.net/manual/en/function.mb-internal-encoding.php comentario dejado por webfav en web dot de


Utilice el siguiente código PHP para eliminar

html_entity_decode(mb_convert_encoding(stripslashes($name), "HTML-ENTITIES", ''UTF-8''))


Please Try this. $find[] = ''/&acirc;&#128;&#156;/'' //''“''; // left side double smart quote $find[] = ''/&acirc;&#128;&#157;/'' //''â€''; // right side double smart quote $find[] = ''/&acirc;&#128;&#152;/'' //''‘''; // left side single smart quote $find[] = ''/&acirc;&#128;&#153;/'' //''’''; // right side single smart quote $find[] = ''/&acirc;&#128;&#133/'' //''…''; // elipsis $find[] = ''/&acirc;&#128;&#150;/'' //''—''; // em dash $find[] = ''/&acirc;&#128;&#147;/'' //''–''; // en dash $replace[] = ''&ldquo;'' // ''"''; $replace[] = ''&rdquo;'' // ''"''; $replace[] = ''&lsquo;'' // "''"; $replace[] = ''&rsquo;'' // "''"; $replace[] = ''&#8943;'' // "..."; $replace[] = ''&mdash;'' // "-"; $replace[] = ''&ndash;'' // "-"; $text = str_replace($find, $replace, $text);