Hola gente, qué tal?
Bueno, estoy teniendo un problema con un patrón al que no le encuentro la vuelta
. Me explico un poco mejor:
Supongamos que tenemos el siguiente string:
Código PHP:
$string = 'fáo = "á está acá";'
Y queremos reemplazar los acentos del tipo "á" por el caracter html correspondiente, pero solo de los "á" que están encerrados entre comillas dobles. Se entiende? O sea, el resultado esperado es el siguiente:
Código PHP:
$string = 'fáo = "á está acá";'
Estuve tratando y tratando y lo más cerca que estuve fue esto:
Código PHP:
<?php
$cadena = 'fáo = "á está acá";';
echo $cadena . "\n<br /><br />\n"; // Cadena sin reemplazos
$patron = '/(\".*?)(á)(.*?\")/is';
$sustitucion = '${1}á${3}';
echo preg_replace($patron, $sustitucion, $cadena); // Cadena reemplazada
?>
Pero el resultado que esto produce es (en código html)
Código HTML:
fáo = "á está acá";
<br /><br />
fáo = "á está acá";
O sea, no me reemplaza todos los "á" sino que sólo el primero.
Alguien tiene idea de qué es lo que le falta o qué está mal en el patrón? Yo me estoy volviendo loco sinceramente
Muchas gracias!