php - str_replace - htmlspecialchars utf-8 devuelve cadena vacía
strip_tags php ejemplo (1)
Su código usa htmlspecialchars($string, ENT_QUOTES, ''utf-8'')
. Citando de la página de manual
Si la cadena de entrada contiene una secuencia de unidad de código no válida dentro de la codificación dada, se devolverá una cadena vacía, a menos que se establezcan los indicadores ENT_IGNORE o ENT_SUBSTITUTE.
Utilice, por ejemplo, htmlspecialchars($string, ENT_QUOTES | ENT_SUBSTITUTE, ''utf-8'')
como una solución rápida.
Si su problema es la entrada no válida, por supuesto, debe averiguar por qué utf8_substr($row[''texto''], 0, 100)
no devuelve una cadena UTF-8 válida en primer lugar.
Estoy haciendo un generador de RSS .php y tengo un problema tratando de obtener datos de mi base de datos en esta línea:
<description><![CDATA[<?=htmlspecialchars(utf8_substr($row[''texto''], 0, 100), ENT_QUOTES, ''utf-8'') ?>...]]></description>
Algunas entradas se muestran bien, y otras no devuelven ningún texto ... ¿Alguna idea sobre qué podría estar mal?
Este es todo el código:
<?php
require(''php/config.php'');
require(''php/db.php'');
require(''php/utils.php'');
header("Content-type: application/xml");
$db = new TSQL(''SELECT * FROM entradas WHERE estado = 1 ORDER BY fecha DESC LIMIT 20'');
if ( $db->executeQuery() ) {
?><?=''<?xml version="1.0" encoding="utf-8" ?>'' ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Tu Secreto</title>
<link>http://www.tusecreto.com.ar/</link>
<description>TuSecreto / No se lo cuentes a nadie, contaselo a todos</description>
<language>es-ar</language>
<copyright>TuSecreto (C) 2005-<?php print strftime("%Y", time()); ?></copyright>
<lastBuildDate><?=strftime("%a, %d %b %Y %H:%M:%S ", $row[''fecha'']) ?></lastBuildDate>
<atom:link href="http://www.tusecreto.com.ar/rss.php" rel="self" type="application/rss+xml" />
<docs>http://www.tusecreto.com.ar/rss.php</docs>
<generator>TuSecreto RSS Generator v1.0</generator>
<ttl>10</ttl>
<? while ($row = $db->getRow(MYSQL_ASSOC)) { ?>
<item>
<title><?=($row[''sexo''] == MUJER)?''Mujer'':''Hombre'' ?> | <?=$row[''edad''] ?> <?="A/xC3/xB1os" ?></title>
<description><![CDATA[<?=htmlspecialchars(utf8_substr($row[''texto''], 0, 100), ENT_QUOTES, ''utf-8'') ?>...]]></description>
<link>http://www.tusecreto.com.ar/<?=$row[''id''] ?></link>
<guid isPermaLink="true">http://www.tusecreto.com.ar/<?=$row[''id''] ?></guid>
<pubDate><?=strftime("%a, %d %b %Y %H:%M:%S ", $row[''fecha'']) ?></pubDate>
</item>
<?php } ?>
</channel>
</rss>
Este es un resultado que devuelve una cadena vacía:
una vez en el asiento individual me dormí y cuando doblo me caí en el pasillo re mal! se mataron de la risa todos !! hasta el colectivero! Pasalo y comento con mi Facebook. EP